objective-c – 使用ZIP存档存储NSDocument数据

objective-c – 使用ZIP存档存储NSDocument数据,第1张

概述我注意到Apple开始使用zip存档来替换iWork应用程序中的文档包(在Finder中显示为单个文件的文件夹).我正在考虑做同样的事情,因为我一直得到与我的文档包相关的支持电子邮件在将它们复制到 Windows文件服务器时被破坏. 我的问题是在基于NSDocument的应用程序中执行此 *** 作的最佳方法是什么? 我想最简单的方法是创建一个目录文件包装器,创建它的存档并在NSDocument中返回它 我注意到Apple开始使用zip存档来替换iWork应用程序中的文档包(在Finder中显示为单个文件的文件夹).我正在考虑做同样的事情,因为我一直得到与我的文档包相关的支持电子邮件在将它们复制到 Windows文件服务器时被破坏.

我的问题是在基于NSdocument的应用程序中执行此 *** 作的最佳方法是什么?

我想最简单的方法是创建一个目录文件包装器,创建它的存档并在NSdocument中返回它

- (NSfileWrapper *)fileWrapperOfType:(Nsstring *)typename error:(NSError **)outError

但我不明白如何创建NSfileWrapper的zip存档.

解决方法 如果你只想制作一个zip文件你的格式(即“mydoc.myextension”实际上是一个zip文件),那么就没有方便的内置Cocoa机制来创建带代码的zip存档.看一下这个Google Code项目: ziparchive我不相信文件包装器在这种情况下会有所帮助.

既然你引用了iWork,我就不拥有iWork 09,但以前的版本使用的是封装格式(即NSfileWrapper非常理想),但是压缩描述文档结构的XML,同时保留附件(如嵌入式媒体,图像等). )在资源文件夹中,所有内容都在包中.我假设他们这样做是因为XML对于大而复杂的文档来说可能非常大,但是因为它是文本而压缩得非常好.这导致整体较小的文档.

如果Apple确实将整个文档变成了一个大的zip存档(我觉得很奇怪),那么他们要么将必要的资源提取到某个临时文件夹中,要么将整个文件加载到内存中(从包中向后退一步)基于方法,IMO).这些也是您需要考虑的因素.

总结

以上是内存溢出为你收集整理的objective-c – 使用ZIP存档存储NSDocument数据全部内容,希望文章能够帮你解决objective-c – 使用ZIP存档存储NSDocument数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存