0

我的应用程序将一些备份文件创建为包(实际上是带有扩展名的目录,以及符合 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而文件已经创建好)

谢谢您的帮助

4

0 回答 0