iCloud键值存储的行为与NSUserDefaults类似

时间:2013-04-11 21:25:52

标签: ios icloud nsubiquitouskeyvaluestore

我没有使用模拟器。一切似乎都在代码中正常工作。我可以读取和写入NSUbiquitousKeyValueStore,它可以在应用程序运行之间保留数据。

[[NSUbiquitousKeyValueStore defaultStore] synchronize]

返回TRUE。但是,更新永远不会到达其他设备,如果我从一个设备删除该应用程序并重新安装它,NSUbiquitousKeyValueStore将被清除干净。从本质上讲,它的行为就像NSUserDefaults的别名。我有权利设置,并在配置门户中启用了iCloud。我的目标设置已选中启用iCloud和键值存储,并将“将商店与标识符”设置为我的应用包标识符。我在“Ubiquity Containers”中有一个条目,也是我的软件包名称。有什么东西我不见了吗?组态?初始化步骤?感谢。

2 个答案:

答案 0 :(得分:2)

您是否正在注册NSUbiquitousKeyValueStoreDidChangeExternallyNotification通知并处理NSUbiquitousKeyValueStoreInitialSyncChange案例?首次启动应用时,您写入NSUbiquitousKeyValueStore的内容可能会被取消,因为没有发生与iCloud的“初始同步”,在这种情况下,您将获得包含值NSUbiquitousKeyValueStoreChangeReasonKey参数的通知NSUbiquitousKeyValueStoreInitialSyncChange

答案 1 :(得分:1)

我的同事指出我必须启用Documents& iCloud设置中的数据。这解决了这个问题。