Перетаскивание из файлов приложения не удается с ошибкой защиты файла 257 - PullRequest
0 голосов
/ 08 апреля 2019

У меня работает Drag and Drop (iOS 11) для Safari / Mail и т. Д., Однако, когда я пытаюсь перетащить изображение с моего рабочего стола iCloud (с помощью приложения «Файлы»), я получаю ошибку couldn’t be opened because you don’t have permission to view it.

Я думал, что Drag & 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)
          }
        }
      }
 }

1 Ответ

0 голосов
/ 08 апреля 2019

До .. пришлось обернуть его вокруг

item.startAccessingSecurityScopedResource()

и

item.stopAccessingSecurityScopedResource()

...