我有用于Safari / Mail等的Drag and Drop工作(iOS 11),但是当我尝试从我的iCloud桌面拖放图像时(使用Files应用程序),我得到了couldn’t be opened because you don’t have permission to view it
错误。
我认为Drag&Drop会在'drop'时在后台处理文件保护问题。如何访问我正在尝试与我的应用程序明确共享的文件?这是失败的代码
itemProvider.loadItem(forTypeIdentifier: kUTTypeImage as String, options: nil, completionHandler: { item, error in
var data: Data? = nil
if item != nil && (item is URL) {
if let item = item as? URL {
do {
data = try Data(contentsOf: item) // <--- fails
} catch {
print(error.localizedDescription)
}
}
}
}
不得不把它包起来
item.startAccessingSecurityScopedResource()
和
item.stopAccessingSecurityScopedResource()