15

我想知道是否可以使用 iCloud 在设备之间同步应用程序的首选项文件。我所说的首选项文件是 NSUserDafults 创建的 com.domain.appname.plist 文件,用于存储应用程序的首选项。

我希望可以选择让我的应用程序的首选项文件在两个不同的设备(例如 iPad 和 iPhone)之间保持同步。这是可以接受的 iCloud 同步使用吗?或者我是否需要将 plist 文件转换为不同类型的文档,将其存储在云中,并在检索时将其转换回应用程序的首选项文件?

谢谢!

4

3 回答 3

18

MKiCloudSync类似,我在 GitHub 上也有一个名为SDCloudDefaults的库。您可以使用一个新对象而不是自动同步,而不是NSUserDefaults同时保存到 iCloud 和NSUserDefaults. 这意味着您可以决定哪些元素存储在本地,哪些存储在云中。

(我在实现 MKiCloudSync 之后发现了它。我认为它很聪明,但我不想将所有内容同步到 iCloud,所以我的解决方案对我来说仍然更有效。)

于 2012-01-25T12:01:33.287 回答
14

有一个库可以用一行代码做到这一点

https://github.com/MugunthKumar/MKiCloudSync

于 2011-12-20T12:19:56.883 回答
11

可以使用 iCloud 在设备之间同步首选项。但是,我建议不要在设备之间共享 plist 文件。

NSUbiquitousKeyValueStore应该适合您尝试做的事情它与 NSUserDefaults 非常相似,所以应该很容易上手。

要使用它,只需在您的权利文件中启用 com.apple.developer.ubiquity-kvstore-identifier 权利,然后复制您希望在无处不在的键值存储中同步的首选项。一旦它在无处不在的 kvstore 中,您就可以从其他设备上的应用程序中看到它。您甚至可以在不同的应用程序之间进行同步,只要它们使用相同的标识符即可。

您还应该注册 NSUbiquitousKeyValueStoreDidChangeExternallyNotification 通知以观察新更改并相应地更新设备上的 standardUserDefaults。

于 2011-10-18T22:10:33.450 回答