UIDocumentPickerViewController和iWork文档未加载

时间:2015-10-05 21:39:53

标签: ios objective-c nsurl iwork uidocumentpickervc


我今天开始实施UIDocumentPickerViewController,而且我已经碰到了一堵砖墙。我已经得到它来导入文档并给它NSURL,但是当我使用iWork文档时,我使用的NSData是null。可能是因为iWork文档是目录而不是文件,我看了一下StackOverflow上的其他一些问题,并且它们似乎都没有提供帮助或提供除了压缩它们之外的解决方案,考虑到它们何时完成似乎是错误的使用相应iWork应用程序中的共享表工作正常。

这是我的代码:

    NSArray* components = [[url lastPathComponent] componentsSeparatedByString:@"."];

    NSData* data = [[NSData alloc] initWithContentsOfURL:url];

    NSString* filename = [[[url lastPathComponent] stringByReplacingOccurrencesOfString:[components lastObject] withString:@""] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];


    NSString* newPath = [NSString stringWithFormat:@"%@/tmpFiles/%@%@",[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0],filename,[components lastObject]];
    [data writeToFile:newPath atomically:YES];

    [self.files addObject:[NSURL fileURLWithPath:newPath]];
    [self updateFileCount];

有没有其他人想出如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:0)

.pages或.numbers类型的文档不是单个文件,而是捆绑包。所以你不能用-dataWithContentsOfURL读取它们:。

您是否使用-copyItemAtURL检查了复制:toURL:error:(NSFileManager)?