Невозможно импортировать страницы и номера документов с помощью 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)?

Другие вопросы по тегам