Ios 未加载UIDocumentPickerViewController和iWork文档

Ios 未加载UIDocumentPickerViewController和iWork文档,ios,objective-c,nsurl,iwork,uidocumentpickervc,Ios,Objective C,Nsurl,Iwork,Uidocumentpickervc,我今天开始实现UIDocumentPickerViewController,我遇到了麻烦。我已经让它导入文档并为它提供NSURL,但是当我使用iWork文档时,我使用的NSData是空的。这可能是因为iWork文档是目录而不是文件,我查看了StackOverflow上的一些其他问题,它们似乎都没有帮助或提供除了压缩它们之外的解决方案,考虑到它们在各自的iWork应用程序中使用共享表时工作正常,这似乎是错误的 这是我的密码: NSArray* components = [[url last


我今天开始实现
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];

还有谁知道如何解决这个问题吗?谢谢。

类型为.pages或.number的文档不是单个文件,而是捆绑包。因此,您无法使用-dataWithContentsOfURL:读取它们


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

类型为.pages或.Number的文档不是单个文件,而是捆绑包。因此,您无法使用-dataWithContentsOfURL:读取它们

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