0

我有一个设置,其中我有一个plist文件,我需要在通用应用程序的设备之间保持同步。目前该plist文件存储在文档目录中。

我一直在网上寻找保持文件同步的方法,很多解决方案似乎都是基于Core Data. 我不确定这是否可能,但有没有办法我可以不使用同步这个文件Core data?如果是这样,请有人建议如何解决这个问题或向我指出一些可以提供帮助的材料的方向?

更具体地说,我需要一种方法来确保正在使用的设备具有 plist 文件的最新副本。例如,如果我早餐时在 iPad 上编辑它,那么在午餐时间我将应用程序加载到 iPhone 上,我应该会通过 iPad 看到早餐时间所做的编辑。

4

2 回答 2

0

AFAIK 您需要为 iPhone/iPad 应用程序提供服务器 API 以发出 POST 请求。您可以发布整个文件或使用包含来自 plist 文件的实际数据的正文 (JSON/XML) 创建 POST 请求。您必须在服务器上维护 ETag/版本信息。为了使同步工作,您需要在服务器上唯一标识每个用户并存储他的 plist 信息。

在 iPhone/iPad 应用程序中,在每次应用程序启动期间,通过发出 HTTP 请求检查资源 ETag(以防文件已上传)或版本(以防 plist 文件内容以 XML/JSON 形式发布)。您还可以在应用程序中开发调度程序功能以获得更好的精度。如果有更新,请下载并保存新的信息/plist 文件。在应用程序 NSUserDefaults 中保留 ETag/version 条目并在此过程中更新它。

友好的建议:避免将任何可下载的数据/设置存储在Application_Home/Documents目录中,因为应用程序可能会被拒绝。请阅读Apple 开发者门户上的这篇文章和相关文档。

这只是初步的想法,即兴创作和优化是为了让你弄清楚...... :)
我希望这会有所帮助!

干杯!!
阿马尔。

于 2012-05-28T10:14:01.843 回答
0

如果您在设置中打开了 iCloud 备份,iCloud 会自动备份您设备上所有应用程序(或选择性)的所有文档目录。

但上述事情我猜一天会发生一次。为了让它实时工作,你必须使用 iCloud API。

希望这会有所帮助。

于 2012-05-27T13:01:31.000 回答