【发布时间】:2014-04-18 02:57:27
【问题描述】:
我们正在将一个包含大量跨平台代码的应用移植到 Cocoa。必须使用直接处理磁盘上文件以进行加载/保存的低级文件处理例程。
由于NSFileWrapper 旨在通过NSData 呈现内存中文件的内容,并抽象出实际的磁盘文件细节,我们不能直接使用它,对吧?
所以为了能够使用我们的低级文件处理代码
fopen()fread()
以及我们正在考虑的类似 ANSI-C 内容
- 使用
NSDocument的NSFileWrapperAPI, - 将文件包装器中的
NSData写回临时文件。文件夹
(例如~/Library/Caches/) - 交出那个温度。文件 (~100k .. 1MB) 到较低级别。
写入文件的工作方式与此类似——反之亦然。
现在 - 这种方法是直接访问NSFileWrapper 所代表的文件 的最简单方法吗?我们是否忽略了文件包装器中的一些 API?
我们是否会遇到任何麻烦 - 尤其是沙盒和 iCloud..?
由于我们希望支持包含超过 1 个文件的文件包,因此我们希望坚持使用 NSDocument 中基于文件包装器的 API,而不是使用基于 NSURL 的方法。
感谢任何反馈/批评!
【问题讨论】:
标签: cocoa nsurl nsdocument appstore-sandbox nsfilewrapper