我们将带有大量跨平台代码的应用移植到Cocoa。使用直接处理磁盘上的文件以进行加载/保存的低级文件处理例程是必需的。
由于NSFileWrapper
旨在通过NSData
显示内存中文件的内容并抽象出实际的磁盘文件详细信息,我们无法直接使用它,对吗? / p>
所以能够使用我们的低级文件处理代码
fopen()
fread()
和我们正在考虑的类似ANSI-C的东西
NSFileWrapper
,NSDocument
API
NSData
写回temp。文件夹文件的编写工作方式类似 - 只是相反。
现在 - 这种方法是获取NSFileWrapper
所代表的直接访问文件的最简单方法吗?我们是否在文件包装器中忽略了一些API?
我们遇到了什么麻烦 - 特别是考虑沙盒和iCloud ......?
由于我们要支持包含多个文件的文件包,我们更愿意在NSDocument
中坚持使用基于文件包装器的API,而不是使用基于NSURL
的文件包。方法
任何反馈/评论家都赞赏!
答案 0 :(得分:2)
我对你的问题没有直接的答案,但我确实有一些强制性的阅读:File System Programming Guide深入解释了各种机制。我会特别注意关于File Coordinators的部分(由NSDocument
使用,并且比试图破解NSDocument
只是为了获得它的某些功能更好)和{{{1}} 3}},包括使用Grand Central Dispatch进行安全的异步文件访问。
我希望这会有所帮助。