我只有NSUbiquitousKeyValueStore出现问题,并且无法在两台设备间可靠同步。它开始让我发疯。狂。NSUbiquitousKeyValueStore同步问题
我看我的代码,请调用:
[[NSUbiquitousKeyValueStore defaultStore] setObject:_someData forKey:@"SomeData"];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];
但更多的时间比不,该数据一直没有出现在其他设备上。
我已经看到它在几秒钟内同步,其他时间我已经等了一个小时,从未见过同步。我将设备插入xcode并开始调试,有时数据会突然弹出,有时则不会。有时候确实如此。
完成此调用后,退出并重新启动应用程序,如果我阅读它,则会看到旧数据,而不是我刚刚发布的新数据。在同一台设备上。
,当应用程序启动时,我做出了一个电话:
_someData = [[NSUbiquitousKeyValueStore defaultStore] stringForKey:@"SomeData"];
我假设有一个需要运行没有初始化代码。没有我找到的例子。
当它工作时,它工作得很好。
然后今晚我一直在寻找的设备日志,发现我的最后一个出口后,这一权利(并尝试发送数据):
Jul 8 21:32:03 unknown syncdefaultsd[17296] <Warning>: Error writing storage for com.mycompany.myapp to /private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences/com.mycompany.myapp.plist: Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed. (Cocoa error 4.)" UserInfo=0xde80d40 {NSFilePath=/private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences, NSUnderlyingError=0xde80b20"The operation couldn’t becompleted. No such file or directory"}
这条道路不是从我的应用程序沙箱(错误GUID的有效途径),所以我想知道这是否是我的问题的根源。我在开发过程中会删除并重新安装应用程序,因此我不知道是否有某个旧路径缓存在某处,并且正试图同步这些数据。有没有办法清除它?
我知道我的所有权利都设置正确,因为它有时会工作。
[[NSUbiquitousKeyValueStore defaultStore] synchronize]
正在返回YES
。
有没有其他人看过这个问题或那个错误?当我的应用程序启动并将数据发送到云时,是否还有其他需要做的事情?根据文档和示例,它看起来很容易。
我面临同样的问题,这让我疯狂!只是试图找出为什么它不同步。 – 2012-08-04 04:46:38
我有完全相同的问题。我发现删除应用程序的容器常常导致问题浮出水面。一旦应用程序的两个实例都有一个有效的容器,它们将正确同步。一旦尝试通过删除容器来测试“第一次体验”,应用程序实例可能永远不会从icloud获取UBKV。我还没有弄清楚这是否会在现实世界中出现。 – 2012-11-29 22:23:45
这就是我所看到的。如果用户从设备中删除了应用程序,然后再次重新安装,期望从云UBKV获取他们的数据,这种情况不会出现吗?在我的情况下(一场比赛),这是我想处理的一个案例。 – 2012-11-30 02:21:29