首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于打包NSDocument文件格式设计的缓存

用于打包NSDocument文件格式设计的缓存
EN

Stack Overflow用户
提问于 2013-03-17 08:05:59
回答 2查看 200关注 0票数 0

我正在设计一种基于打包的NSDocument文件格式。文档将包含许多目录和文件,因此我希望将缓存保存为文档的一部分,或者保存在应用程序的缓存目录中。

缓存将是一个简单的plist数组。

我想设计这个,以便文件可以通过Dropbox或iCloud同步。所以我面临着一个棘手的问题...缓存失效。

如果我将缓存存储在文档包中,如果同时在两台计算机上编辑文档,其中一台可能会覆盖另一台的缓存,或者它们可能需要解决冲突。

如果我将缓存存储在外部缓存目录中,可能是基于文档名或文件标识符命名的,那么如果文档在其他地方更新了(通过同步,甚至是从电子邮件复制的较新版本),我需要一些方法来检测它是否过时。

外部缓存也有其他问题,例如,我曾考虑将UUID存储在文档中并将其用作缓存文件名,但如果文档被复制,缓存将被两个文档使用,这显然是错误的,只要一个文档被编辑。

在我看来,对它来说最安全的地方是在文档包中,但随后又回到了可能的冲突。

我还想知道如何检测变化。一种过于复杂的想法是,在每次保存文档时,将一个以UUID命名的文件写入文档中的文件夹,然后如果其中的文件数量发生变化,则重新构建缓存。(更简单的方法是文档中的更改计数,但如果两台机器同时增加计数并保存,则可能会导致冲突,请记住可能存在同步延迟。)

在我看来,安全地同步文档包并不是一个不常见的问题,所以我希望有人能提供一些最佳实践建议?

EN

Stack Overflow用户

发布于 2013-03-17 09:02:40

使用Dropbox,你会遇到一个问题,那就是无法自动更改文档包。也就是说,如果保存您的文档涉及更改N个文件,然后再次保存涉及更改M个不同的文件,Dropbox将以它想要的任何顺序同步这些N+M更改的文件,您无法区分一个文档级保存在哪里结束,下一个文档级保存在哪里开始,或者您当前看到的是完整保存还是某个中间值,其中您有一些更新的文件,但还没有看到其他文件。

iCloud知道文档包,但至少现在,您偶尔会看到虚假的冲突或更改“上升到云中”,似乎迷失了方向,再也不会回来了。调试这类情况非常非常困难。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15456196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档