我想使用 NSDocument 来存储我的应用程序的数据。我希望用户能够将图像嵌入到文档中。为了不在我的文档中存储嵌入图像的路径,我想嵌入它们的内容。
我已经看到,例如 Keynote 将所有图像存储在其文档中。我如何在扩展 NSDocument 的类中做类似的事情?当我覆盖 readFromData
和 dataOfType
方法时,我必须处理 NSData
,它不允许我做这样的事情。我是否必须覆盖 fromUrl
内容才能执行此操作?
或者我是否必须自己处理 NSDocument 为我做的所有低级工作并自己创建一个 NSFilePresenter
实现?
最佳答案
您必须使文档成为文件包装器,因此实际上它成为一个目录,但 Finder 会将其显示为单个实体。使用的方法在NSDocument中:
- fileWrapperOfType:错误:
- readFromFileWrapper:ofType:错误:
使用它们代替 readFromData 和 dataOfType。您还需要阅读文件包装器(NSFileWrapper)。
我读过一些反对使用文件包装器的建议。我想我读到一些压缩程序无法正确归档和扩展它们,例如。用于通过电子邮件发送。但我不认为这是苹果的推荐,对我来说听起来更像是存档程序的缺点。
关于objective-c - 在单个文档中存储多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822525/