Я работаю над расширением поставщика документов для режима импорта.
URL-адрес файла находится внутри общего контейнера, совместно используемого как расширением, так и приложением-контейнером.
Я получил ошибку утверждения, говорящую, что он должен находиться в общем каталоге контейнера/хранилища поставщика файлов.
Поэтому я скопировал файл из исходного каталога в каталог File Provider Storage.
У меня есть файл в исходном месте, и я также получил файл в новом скопированном месте. Я также проверил длину данных файла, это правильно,
Но когда я вызываю [самоотклонениеGrantingAccessToURL:toUrl];
Это не отклонение UIDocumentPickerExtensionViewController
,
Я не сталкиваюсь с какими-либо исключениями, но он не отклонит и не инициирует передачу, поэтому пользователь все еще может получить доступ к расширению.
Ниже мой код. Если кто-то сталкивался с тем же, пожалуйста, оставьте свой ответ.
- (void)userChoosesEntityOfUrl:(NSURL *)url
{
NSURL *toUrl = [self.documentStorageURL URLByAppendingPathComponent:[url lastPathComponent]];
if ([[NSFileManager defaultManager] fileExistsAtPath:[toUrl path]]) {
[[NSFileManager defaultManager] removeItemAtPath:[toUrl path] error:nil];
}
if ([[NSFileManager defaultManager] copyItemAtURL:url toURL:toUrl error:nil]) {
NSLog(@"%@", [toUrl path]);
}
if (![[NSFileManager defaultManager] fileExistsAtPath:[toUrl path]]) {
NSLog(@"File Doesn't exists at this path");
return;
}
NSLog(@"Data Length %i",[[NSData dataWithContentsOfFile:[toUrl path]] length]);
[self dismissGrantingAccessToURL:toUrl];
}