- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在使用 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/
我已经设置了应用程序组并且正在使用 NSUserDefaults initWith suiteName为了允许我的应用程序和我的扩展程序访问同一组首选项。我现在想用一个可以通过 iCloud 同步这些
对于 iOS 应用程序,我正在研究如何通过 iCloud 同步用户数据。由于数据量很小,我目前想到的是使用iCloud的键值存储(NSUbiquitousKeyValueStore)。 我有几个关于
我正在尝试将一些数据从 iCloud 迁移出去,所以我想我只需将 key 保存在新位置后就将其删除,然后如果该值不再存在,我就会知道该值是否不再需要迁移iCloud。 NSUbiquitousKeyV
我在使用 NSUbiquitousKeyValueStore 以及让它在两个设备之间可靠地同步时遇到了麻烦。它开始让我发疯。疯了。 我看到我的代码调用了: [[NSUbiquitousKeyValue
我遇到了一个似乎很独特的问题。我的 NSUbiquitousKeyValueStore 在模拟器中的启动之间根本不起作用。也就是说,我什至不是在谈论 iCloud 同步或类似的东西,我无法让它通过下面
我正在使用 NSUbiquitousKeyValueStore 在 iCloud 中存储用户首选项。为确保我了解 NSUbiquitousKeyValueStore 的工作原理,我成功地存储了一个 S
我正在编写一些代码来保存用户首选项。 enum CustomSettingsEnum: NSNumber { case Off case On } let someKey = "SOM
我正在尝试使用 NSUbiquitousKeyValueStore 类来使用 iCloud 键值。但是当我尝试通过指定的键获取值时,出现错误 [ valueForUndefinedKey:]: thi
背景故事:对于使用 Catalyst 制作的 Mac 应用程序,推送通知目前存在错误。这意味着如果同步引擎是 CloudKit 或 NSUbiquitousKeyValueStore,则不会接收在其他
我正在我的应用程序中启用 iCloud 以保存一些首选项。iCloud 在功能部分启用,我的配置文件已更新: 我保存和检索测试示例的代码如下: NSUbiquitousKeyValueStore *c
我正在使用 NSUbiquitousKeyValueStore 在 iCloud 上存储用户数据字典( gem 、用户名等)。 gem 可以在应用程序中作为消耗性 IAP 购买,然后用户拥有的 gem
NSUbiquitousKeyValueStore 的最大大小是多少? 我见过相互矛盾的报告,例如 current iOS documentation says 1mb : 但是,如果您在 Googl
来自 Apple's NSUbiquitousKeyValueStore documentation : If you write to the key-value store object when
我了解到 NSUbiquitousKeyValueStore 始终可用,在 no iCloud account 时也是如此已成立。这让我相信我可以安全地将基本数据存储在其中,而无需在 NSUserDe
文档并不清楚如何在边缘情况下使用 NSUbiquitousKeyValueStore。 如果我想设置一个值,我知道我应该为 NSUserDefaults 和 NSUbiquitousKeyValueS
我正在使用 NSUbiquitousKeyValueStore 来同步我的应用程序首选项,我正在使用两台设备 iPhone 3GS 和 iPhone 4 测试同步过程。 当我更改一台设备(比如 iPh
我已经尝试了所有方法并阅读了所有主题,但我无法找出为什么 NSUbiquitousKeyValueStore 没有存储在 iCloud 上。 • 创建了特定的 App ID • 为这个 App ID
我有一个配置为使用 iCloud 的应用程序。我正在向 NSUbiquitousKeyValueStore 添加一个键/值,我可以在我的所有设备上按预期检索它。但是,如果我从“设置”下删除我的应用程序
在我的 watchOS 2 应用程序中使用 NSUbiquitousKeyValueStore 时出现此错误: NSUbiquitousKeyValueStore is unavailable
所以我只是想让我的无处不在的关键数据发挥作用。不幸的是我也无法做到!我就是无法让它通过 iCloud 执行任何操作! Here是一个项目文件,其中有一个带有三个按钮的简单 Storyboard。目标是
我是一名优秀的程序员,十分优秀!