在过去的两天里,我一直在尝试将我的单文件文档打包成一个包,但我无法让它工作。在文档中,它指出首选方法是使用 NSFileWrapper。我已经尝试过了,但这只是处理文件的一种不直观的方式。
我想更新一个文件我需要从它的目录中删除文件包装器,创建一个全新的文件并将其再次添加到目录中。我还没有找到任何明确说明它的东西,但我想我应该只在fileWrapperOfType:error:
被调用时更新文件。
由于 NSFileWrapper 将所有内容(至少加载一次)保存在内存中,这意味着我将同时拥有旧版本和新版本,直到用户(或自动保存)保存文件。
似乎 NSFileWrapper 不应该用于大文件,但我认为如果文档所需的所有文件都在包内(可以复制到另一台 Mac/iPhone/iPad 而不会出现错误)会更好不想限制用户文件的数量/大小。
当使用手动的基于 URL 的保存机制时,我最终得到了损坏的包,因为目标目录总是一个临时目录,我找不到任何关于如何合并它们的信息。每次我手动保存文档而不进行任何更改时,都会发生错误,因为我没有向临时目录写入任何内容。但是我没有看到将所有内容写入/链接到临时目录的原因,只是为了将其复制/“取消”链接回其目的地。
由于我似乎找不到正确的答案,保存和恢复包含许多/大文件的大包的最佳做法是什么?