gpt4 book ai didi

ios - NSUbiquitousKeyValueStore 同步问题

转载 作者:可可西里 更新时间:2023-11-01 05:46:37 25 4
gpt4 key购买 nike

我在使用 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"}

该路径不是来 self 的 Apps 沙箱的有效路径(错误的 GUID),所以我想知道这是否是我的问题的根源。我在开发过程中确实删除并重新安装了很多应用程序,所以我想知道是否有一些旧路径缓存在某处并且它正在尝试同步该数据。有没有办法清除它?

我知道我的所有权利都已正确设置,因为它有时确实有效。

[[NSUbiquitousKeyValueStore defaultStore] synchronize] 正在返回 YES

有没有其他人看到这个问题或那个错误?当我的应用程序启动时以及当我将数据发送到云端时,我还需要做些什么吗?根据文档和示例,这似乎很简单。

最佳答案

我在启动时使用它并立即获取 iCloud 值或 updateKVStoreItems:在 < 5 秒内被调用。

- (void) initializeiCloud
{
NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateKVStoreItems:) name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification object:store];
if ([store boolForKey:@"fakeSyncBit"])
{
NSLog(@"in initiCloud setting syncbit NO");
[store setBool:NO forKey:@"fakeSyncBit"];
}
else
{
NSLog(@"in initiCloud setting syncbit YES");
[store setBool:YES forKey:@"fakeSyncBit"];
}
[store synchronize];
NSLog(@"icloud store is synchronized. updateKVStoreItems: should be called shortly");
}

关于ios - NSUbiquitousKeyValueStore 同步问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com