objective-c - 在单个文档中存储多个文件

标签 objective-c cocoa

我想使用 NSDocument 来存储我的应用程序的数据。我希望用户能够将图像嵌入到文档中。为了不在我的文档中存储嵌入图像的路径,我想嵌入它们的内容。

我已经看到,例如 Keynote 将所有图像存储在其文档中。我如何在扩展 NSDocument 的类中做类似的事情?当我覆盖 readFromDatadataOfType 方法时,我必须处理 NSData ,它不允许我做这样的事情。我是否必须覆盖 fromUrl 内容才能执行此操作? 或者我是否必须自己处理 NSDocument 为我做的所有低级工作并自己创建一个 NSFilePresenter 实现?

最佳答案

您必须使文档成为文件包装器,因此实际上它成为一个目录,但 Finder 会将其显示为单个实体。使用的方法在NSDocument中:

  • fileWrapperOfType:错误:
  • readFromFileWrapper:ofType:错误:

使用它们代替 readFromData 和 dataOfType。您还需要阅读文件包装器(NSFileWrapper)。

我读过一些反对使用文件包装器的建议。我想我读到一些压缩程序无法正确归档和扩展它们,例如。用于通过电子邮件发送。但我不认为这是苹果的推荐,对我来说听起来更像是存档程序的缺点。

关于objective-c - 在单个文档中存储多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822525/

相关文章:

iphone - NSArray 传递时变成 NSCFArray

ios - 使用 CFDataRef 将证书保存到钥匙串(keychain)

ios - 用于在多个 ViewController 上显示标签的自定义 UIView?

objective-c - 使用 NSDocument 打开任何文件夹

ios - Game Center Sandbox 中缺少邀请

objective-c - 成为第一响应者后如何识别点击 TextView ?

objective-c - 如何创建状态栏弹出 View (菜单)?

objective-c - cocoa 和 Objective C 保存、编辑和加载文件

objective-c - 在我的应用程序中放置 'terminal'?

ios - 核心数据-如何访问实体属性?