我的应用程序将一些备份文件创建为包(实际上是带有扩展名的目录,以及符合 com.apple.package 的导出 UTI)。
我希望能够将它们读取为 NSData,我可以将其附加到 MFMailComposeViewController 中的电子邮件。实际上,它不起作用,因为dataWithContentsOfURL:
当我尝试读取包时返回 nil (我认为因为它是一个目录,而不是一个常规文件)。
我知道我的包文件很好,因为当我从我的 iPhone 下载“应用程序容器”时,我可以在我的 Mac 上访问它们。
我使用 NSFileWrappers 生成它们,并调用该writeToURL:options:originalContentsURL:error:
方法。我不想使用serializedRepresentation
,因为它生成只能由 NSFileWrapper 读取的 NSData(我希望能够通过单击“显示包内容”在我的 Mac 上打开它们)。
这是不起作用的代码部分:
NSURL *finalBackupURL = [outputDirectoryURL URLByAppendingPathExtension:@"ext"];
if (![packageWrapper writeToURL:finalBackupURL options:0 originalContentsURL:nil error:error])
@throw [NSException exceptionWithError:*error];
NSData *data = [NSData dataWithContentsOfURL:finalBackupURL];
(data = nil
而文件已经创建好)
谢谢您的帮助