В настоящее время я пытаюсь реализовать функциональность для режимов перемещения и экспорта. Все, что я делаю, это заставляю пользователя перейти в каталог, в который он хочет переместить/экспортировать свой файл, а затем вызвать команду dismissGrantingAccessToURL в выбранном каталоге с добавлением имени файла исходного файла. Вот как это выглядит в коде:
let moveDestinationPath = self.currentDirectory.path.stringByAppendingPathComponent(AppHelper.Stored.originalURL!.lastPathComponent)
delegate.finishWithURL(NSURL.fileURLWithPath(moveDestinationPath))
Я подумал, что этого должно хватить, учитывая, что в документации сказано следующее:
Экспорт режима средства выбора документов. Укажите URL-адрес для выбранного места назначения. Этот URL-адрес должен быть доступен только расширению контроллера представления средства выбора документов. Система сохраняет копию документа по этому URL-адресу и возвращает URL-адрес хост-приложению, чтобы указать на успех. Хост-приложение не может получить доступ к документу по этому URL-адресу.
Переключить режим средства выбора документов. Укажите URL-адрес для выбранного места назначения. URL-адрес должен содержаться внутри иерархии, на которую ссылается ваше свойство documentStorageURL. Система переместит документ на этот URL-адрес и вернет URL-адрес хост-приложению. После этого хост-приложение сможет получить доступ к документу по новому URL-адресу.
Однако, когда я запускаю этот код, я получаю следующую ошибку:
Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: '<TestDocumentProvider.DocumentPickerViewController: 0x7c470770> was
dismissed with a nonexistent URL (file:///Users/test/Library/Developer/CoreSimulator
/Devices/6867B1A7-8694-4D6D-8480-69FE89F39C27/data/Containers/Shared/AppGroup/74A2FBED-
70C5-4F24-8345-AD35FEB86D01/FileProviderStorage/Directory1/apple1.png)
in Move or Export mode'
Учитывая эту ошибку, кажется, что они хотят, чтобы я вручную переместил или скопировал файл по исходному URL-адресу поверх себя. Но это противоречит тому, что говорится в документации (часть о системе, которая это делает).
Итак, кто-нибудь знает, что Apple собирается сделать со мной в этой ситуации? На данный момент я, вероятно, просто пойду по пути перемещения/копирования самостоятельно...