Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在单个文档中存储多个文件_Objective C_Cocoa - Fatal编程技术网

Objective c 在单个文档中存储多个文件

Objective c 在单个文档中存储多个文件,objective-c,cocoa,Objective C,Cocoa,我想使用NSDocument来存储我的应用程序的数据。我希望用户能够将图像嵌入到文档中。为了不在我的文档中存储嵌入图像的路径,我希望嵌入它们的内容 例如,我看到Keynote将所有图像存储在其文档中。我如何在我的类中完成扩展NSDocument的类似操作?当我覆盖readFromData和dataOfType方法时,我必须处理NSData,这不允许我做这些事情。我是否必须重写fromUrl内容才能这样做? 或者我必须自己处理NSDocument为我所做的所有低级工作,并创建一个NSFilePre

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

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

您必须将您的文档制作成一个文件包装器,因此实际上它会成为一个目录,但查找程序会将其显示为单个实体。使用的方法见NSC文档:

  • fileWrapperOfType:错误:
  • readFromFileWrapper:类型:错误:
使用这些,而不是readFromData和dataOfType。您还需要阅读文件包装器(NSFileWrapper)

我已经阅读了一些反对使用文件包装器的建议。我想我读到过一些压缩程序在正确归档和扩展它们时遇到问题,例如通过电子邮件发送。不过,我不认为这是苹果的推荐,对我来说,这更像是存档程序的一个缺点