我可以使用iCloud来同步NSUserDefaults plist文件吗?

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

我想要让我的应用程序的首选项文件在两个不同的设备(例如iPad和iPhone)之间同步的选项。 这是一个可以接受的使用iCloud同步吗? 或者,我是否需要将plist文件转换为不同types的文档,将其存储在云端,然后将其转换回应用程序的首选项文件?

谢谢!

有一个库可以用一行代码来完成

https://github.com/MugunthKumar/MKiCloudSync

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

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

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

NSUbiquitousKeyValueStore应该适合你所要做的。 这与NSUserDefaults非常相似,所以应该很容易拾取。

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

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