Невозможно импортировать страницы и номера документов с помощью UIDocumentPicker
Я разрабатываю приложение, которое предоставляет возможность хранить облачные документы. Это приложение будет иметь возможность импортировать данные из других приложений, используя новый UIDocumentPickerViewController
, Все отлично работает, и я могу показать контроллер вида выбора. Это код, который я использую для импорта файла:
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url {
if (controller.documentPickerMode == UIDocumentPickerModeImport) {
dispatch_async(dispatch_get_main_queue(), ^{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString* path=[NSString stringWithFormat:@"%@/MyHandyTap/%@/%@",documentsDirectory,self.cartella,[url lastPathComponent]];
BOOL startAccessingWorked = [url startAccessingSecurityScopedResource];
NSURL *ubiquityURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
__block NSData *data;
NSFileCoordinator *fileCoordinator = [[NSFileCoordinator alloc] init];
NSError *error;
[fileCoordinator coordinateReadingItemAtURL:url options:0 error:&error byAccessor:^(NSURL *newURL) {
data = [NSData dataWithContentsOfURL:newURL];
[data writeToFile:path atomically:YES];
}];
[url stopAccessingSecurityScopedResource];
}
}
С помощью этого кода я могу импортировать много разных форматов файлов (.pdf,.txt,.rtf,.doc и т. Д.), Однако, если я пытаюсь импортировать файлы.pages или.numbers файлы из iCloud, вызов [NSData dataWithContentsOfURL:newURL]
возвращается null
,
Можно ли разрешить пользователям импортировать файлы такого типа?
Я ознакомился с документацией, перечисленной здесь https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/FileProvider.html и Я скачал приведенный здесь пример: https://developer.apple.com/devcenter/download.action?path=/wwdc_2014/wwdc_2014_sample_code/newboxanintroductiontoiclouddocumentenhancementsinios8.0.zip однако я не могу понять, как решить эту проблему вопрос.
Заранее спасибо за вашу помощь
Andrea
1 ответ
Даже я не проверял это, но, скорее всего, вы получите проблемы, потому что документы типа.pages или.numbers - это не отдельные файлы, а пакеты. Таким образом, вы не можете читать их с -dataWithContentsOfURL:
,
Вы проверяли копирование с -copyItemAtURL:toURL:error:
(NSFileManager
)?