首页 > 解决方案 > 从文件应用程序拖放失败,出现 257 文件保护错误

问题描述

我已经为 Safari / Mail 等提供了拖放功能(iOS 11),但是当我尝试从我的 iCloud 桌面(使用文件应用程序)拖放图像时,出现couldn’t be opened because you don’t have permission to view it错误。

我认为拖放在“拖放”时处理后台文件保护问题。如何访问我试图与我的应用明确共享的文件?这是失败的代码

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)
          }
        }
      }
 }

标签: iosdrag-and-dropnsdatansfilemanager

解决方案


做..不得不把它包裹起来

item.startAccessingSecurityScopedResource()

item.stopAccessingSecurityScopedResource()


推荐阅读