我可以使用iCloud来同步NSUserDefaults plist文件吗?
我想知道是否有可能使用iCloud在设备之间同步应用程序的首选项文件。 我所说的首选项文件是NSUserDafults创build的com.domain.appname.plist文件,用于存储应用程序的首选项。
我想要让我的应用程序的首选项文件在两个不同的设备(例如iPad和iPhone)之间同步的选项。 这是一个可以接受的使用iCloud同步吗? 或者,我是否需要将plist文件转换为不同types的文档,将其存储在云端,然后将其转换回应用程序的首选项文件?
谢谢!
有一个库可以用一行代码来完成
与MKiCloudSync类似,我也在GitHub上有一个名为SDCloudDefaults的库。 没有自动同步,而是使用了一个新对象,而不是NSUserDefaults
,它保存到iCloud和NSUserDefaults
。 这意味着您可以决定哪些元素存储在本地,哪些存储在云中。
(我在实现之后发现了MKiCloudSync,我认为它很聪明,但我不想将所有内容都同步到iCloud,所以我的解决scheme对我来说仍然更好。
可以使用iCloud在设备之间同步首选项。 不过,我build议不要在设备之间共享plist文件。
NSUbiquitousKeyValueStore应该适合你所要做的。 这与NSUserDefaults非常相似,所以应该很容易拾取。
要使用它,只需在授权文件中启用com.apple.developer.ubiquity-kvstore-identifier权利,然后复制您想在无处不在的密钥值存储中同步的首选项。 一旦它在无处不在的kvstore中,您将能够从其他设备上的应用程序中看到它。 只要使用相同的标识符,您甚至可以在不同的应用程序之间进行同步。
您还应该注册NSUbiquitousKeyValueStoreDidChangeExternallyNotification通知,以监视新的更改并相应地更新设备上的standardUserDefaults。