我今天开始实施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];
有没有其他人想出如何解决这个问题?感谢。
答案 0 :(得分:0)
.pages或.numbers类型的文档不是单个文件,而是捆绑包。所以你不能用-dataWithContentsOfURL读取它们:。
您是否使用-copyItemAtURL检查了复制:toURL:error:(NSFileManager)?