从iCloud文件选择器附加iWork文档不工作,因为它们是目录而不是文件 [英] Attaching iWork documents from iCloud Document Picker does not work because they are directories not files

查看:258
本文介绍了从iCloud文件选择器附加iWork文档不工作,因为它们是目录而不是文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

转换任何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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆