从iCloud文件选择器附加iWork文档不工作,因为它们是目录而不是文件 [英] Attaching iWork documents from iCloud Document Picker does not work because they are directories not files
问题描述
转换任何iWork文档(页
, Keynote
,数字
c)到中的
NSData
似乎不起作用,因为它们不是文件而是目录。
Converting any iWork documents (Pages
, Keynote
, Numbers
) into NSData
from the UIDocumentPickerViewController
does not seem to be working since they are not files but directories.
这是我的代码:
NSString *fileName = [[url path] lastPathComponent];
NSData *fileData = [[NSFileManager defaultManager] contentsAtPath:[docPickerUrl path]];
NSString *fileExtension = [docPickerUrl pathExtension];
NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtension, NULL);
NSString *contentType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)UTI, kUTTagClassMIMEType);
fileData总是 nil
$ c> NSFileManager 无法将目录转换为数据。
fileData is always nil
since NSFileManager
can't convert directory to data.
我得到 url
从 - (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url
推荐答案
我有同样的问题: iOS8:UIDocumentPickerViewController get NSData
解决方案是将iWork文档添加为zip存档,最简单的方法是使用 SSZipArchive 库也可作为可可豆:
The solution is to add iWork documents as zip archives, the simplest way is to use SSZipArchive library, also available as cocoa pod:
pod 'SSZipArchive', '~> 0.3'
这篇关于从iCloud文件选择器附加iWork文档不工作,因为它们是目录而不是文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!