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