解密 Apple的文档时遇到很多麻烦UIManagedDocument ,特别是以下方法:

  • - (id)additionalContentForURL:(NSURL *)absoluteURL error:(NSError **)error
  • - (BOOL)readAdditionalContentFromURL:(NSURL *)absoluteURL error:(NSError **)error
  • - (BOOL)writeAdditionalContent:(id)content toURL:(NSURL *)absoluteURL originalContentsURL:(NSURL *)absoluteOriginalContentsURL error:(NSError **)error

    是否有人成功地将其他内容保存到其UIManagedDocument包内的“其他内容”目录中?我希望使用UUID作为文件名(具有正确的文件扩展名)将平直的图像(PNG,JPEG等)和视频(m4v等)保存到此目录中,并将对这些单个文件的引用存储为NSString文件路径我的持久存储。

有帮助吗?

解决方案

要访问 Apple DTS ,以帮助我理解本课程。我在这里分享了他们为我提供帮助的一些示例(略有修改)。

好的,所以基本上它是这样工作的:子类UIManagedDocument,并实现以下方法(其中extraInfo属性只是在我们的子类上实现的NSDictionary): 通用标签

UIManagedDocument会在需要时调用这些方法,自动将需要保存的内容保存到AdditionalContent目录中的文档包中。

如果您需要强制保存,只需在您的UIManagedDocument实例上调用以下命令即可: 通用标签

目前,我还没有将其用于图像和视频-但该示例应足以使您脱颖而出。

其他提示

-additionalContentForURL:error的文档:指示返回的nil应该表示错误。 通用标签

我出于另一个目的重写了-writeContents:andAttributes:safelyToURL:forSaveOperation:error:(在第一次保存新文档时做了一些事情),并且调用super会调用NSException,因为contents的值为nil,而不是UIManagedDocument所期望的NSDictionary。嗯。

您知道的越多...

P.S。我想这取决于一天中使用-writeContents:andAttributes:...的时间。...它曾经引发异常,抱怨期望NSDictionary,但是后来引发异常,抱怨我没有将其传递给NSData。我的眉毛无法像现在一样像Spock一样扬起。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top