我没有使用模拟器。一切似乎都在代码中正常工作。我可以读取和写入NSUbiquitousKeyValueStore,它可以在应用程序运行之间保留数据。
[[NSUbiquitousKeyValueStore defaultStore] synchronize]
返回TRUE。但是,更新永远不会到达其他设备,如果我从一个设备删除该应用程序并重新安装它,NSUbiquitousKeyValueStore将被清除干净。从本质上讲,它的行为就像NSUserDefaults的别名。我有权利设置,并在配置门户中启用了iCloud。我的目标设置已选中启用iCloud和键值存储,并将“将商店与标识符”设置为我的应用包标识符。我在“Ubiquity Containers”中有一个条目,也是我的软件包名称。有什么东西我不见了吗?组态?初始化步骤?感谢。
答案 0 :(得分:2)
您是否正在注册NSUbiquitousKeyValueStoreDidChangeExternallyNotification
通知并处理NSUbiquitousKeyValueStoreInitialSyncChange
案例?首次启动应用时,您写入NSUbiquitousKeyValueStore
的内容可能会被取消,因为没有发生与iCloud的“初始同步”,在这种情况下,您将获得包含值NSUbiquitousKeyValueStoreChangeReasonKey
参数的通知NSUbiquitousKeyValueStoreInitialSyncChange
答案 1 :(得分:1)
我的同事指出我必须启用Documents& iCloud设置中的数据。这解决了这个问题。