将多个文件存储在单个文档中

时间:2014-11-08 21:57:29

标签: objective-c cocoa

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

我已经看到,例如Keynote将所有图像存储在其文档中。我如何在我的课程中做类似的事情,扩展NSDocument?当我覆盖readFromDatadataOfType方法时,我必须处理NSData,而这些方法不允许我这样做。我是否必须覆盖fromUrl这样做? 或者我是否必须自己处理NSDocument为我做的所有低级别的东西,并自己创建NSFilePresenter实现?

1 个答案:

答案 0 :(得分:1)

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

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

使用这些而不是readFromData和dataOfType。您还需要阅读文件包装器(NSFileWrapper)。

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