objective-c - 无法使用 UIDocumentPicker 导入页面和编号文档

标签 objective-c file ios8 file-import uidocumentpickervc

我正在开发一个应用程序,提供存储云文档的功能。 此应用程序可以选择使用新的 UIDocumentPickerViewController 从其他应用程序导入数据。 一切正常,我能够显示选择器 View Controller 。 这是我用来导入文件的代码:

- (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 等),但是如果我尝试从 iCloud 导入文件 .pages 或 .numbers 文件,则会调用[NSData dataWithContentsOfURL:newURL] 返回 null

是否可以让用户导入此类文件?

我已将此处列出的文档标记为红色 https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/FileProvider.html#//apple_ref/doc/uid/TP40014214-CH18-SW2 我已经下载了此处列出的示例:https://developer.apple.com/devcenter/download.action?path=/wwdc_2014/wwdc_2014_sample_code/newboxanintroductiontoiclouddocumentenhancementsinios8.0.zip 但是我不知道如何解决这个问题。

预先感谢您的帮助

安德里亚

最佳答案

即使我没有测试它,但您可能会遇到问题,因为 .pages 或 .numbers 类型的文档不是单个文件,而是 bundle 。因此您无法使用 -dataWithContentsOfURL: 读取它们。

您是否使用 -copyItemAtURL:toURL:error: 检查复印情况(NSFileManager)?

关于objective-c - 无法使用 UIDocumentPicker 导入页面和编号文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29005891/

相关文章:

iphone - 获取解析字节失败。错误 : optm 1869640813 in audio streaming in iphone sdk

ios - 使用最新的 SDK 从谷歌驱动器下载文件?

java - 更改 JFileChooser 的目录

ios - CoreData NSSQLiteStoreType 未获取关系

xcode - 远程 Web 应用程序调试在 ios 8 beta 中不起作用

ios - 通过点击通知检查应用程序是否已打开

objective-c - 苹果操作系统 X : Get current username and home directory for current user from Directory Services

linux - open() 是否将文件加载到 ram 上?

PHP计算目录和子目录函数中的文件总数

ios - 通过 Donebutton 关闭 UIPickerView