我想知道是否可以使用iCloud在设备之间同步应用程序的首选项文件。我所讨论的首选项文件是由NSUserDafults创建的com.domain.appname.plist文件,用于存储应用程序的首选项。
我希望可以选择让我的应用程序首选项文件在两个不同的设备(例如iPad和iPhone)之间保持同步。这是iCloud同步的可接受使用吗?或者我是否需要将plist文件转换为不同类型的文档,将其存储在云端,并在检索时将其转换回应用程序的首选项文件?
谢谢!
答案 0 :(得分:16)
与MKiCloudSync类似,我在GitHub上也有一个名为SDCloudDefaults的库。不是自动同步,而是使用一个新对象而不是NSUserDefaults
来保存到iCloud和NSUserDefaults
。这意味着您可以决定在本地存储哪些元素以及哪些元素存储在云中。
(我在实施之后发现了MKiCloudSync。我认为它很聪明,但我不想将所有内容同步到iCloud,所以我的解决方案对我来说仍然更好。)
答案 1 :(得分:13)
有一个库可以用一行代码
来完成答案 2 :(得分:11)
可以使用iCloud在设备之间同步首选项。但是,我建议不要在设备之间共享plist文件。
NSUbiquitousKeyValueStore应该适合您尝试的操作。它与NSUserDefaults非常相似,因此应该很容易上手。
要使用它,只需在您的权利文件中启用com.apple.developer.ubiquity-kvstore-identifier权利,只需复制您想要在无处不在的键值存储中同步的首选项。一旦它进入无处不在的kvstore,你就可以从其他设备上的应用程序中看到它。您甚至可以在不同的应用程序之间进行同步,只要它们使用相同的标识符即可。
您还应该注册NSUbiquitousKeyValueStoreDidChangeExternallyNotification通知以监视新的更改并相应地更新设备上的standardUserDefaults。