当我将一个文件从我的桌面拖到我的应用程序中时,我在DropDelegate in SwiftUI中抓取一个文件时遇到了困难。
我在NSItemProvider上使用异步NSSecureCoding调用,它返回一个NSSecureCoding。我以为我可以将结果转换为NSURL,但总是失败。
let url = try await (urlProvider
.loadItem(forTypeIdentifier: UTType.url.identifier) as? NSURL如果我试图强制强制转换,则会得到以下错误:
Could not cast value of type 'Foundation.__NSSwiftData' to 'NSURL'.我正在成功地使用相同的调用,并将其转换到代码中的其他地方的NSDictionary。
这是在Xcode 13.4,Swift 5。我已经阅读访问用户选择的文件在我的沙箱功能。
有人能帮我指出我做错了什么吗?谢谢。
发布于 2022-05-23 13:08:54
我必须转换为Data,然后从它构造URL:
if let data = try await urlProvider
.loadItem(forTypeIdentifier: UTType.fileURL.identifier) as? Data {
url = URL(dataRepresentation: data, relativeTo: nil) }https://stackoverflow.com/questions/72320926
复制相似问题