1


我今天开始实施UIDocumentPickerViewController,但遇到了障碍。我已经得到它来导入文档并给我NSURL它,但是当我使用 iWork 文档时,我使用的 NSData 为空。可能是因为 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];

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

4

1 回答 1

0

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

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

于 2016-05-19T09:08:27.890 回答