我的问题很简单:
我现在正在开发 Cocoa应用程序,它将数据存储在 iCloud (键值存储区)中。为了测试 iCloud同步,我构建了一个简单的 iOS应用,并将其安装在我的设备中。
我在cocoa app中做了 iCloud初始化:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataUpdatedFromCloud:) name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification object:[NSUbiquitousKeyValueStore defaultStore]];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];
和选择器:
+(void)dataUpdatedFromCloud:(NSNotification *)notification {
NSLog(@"dataUpdatedFromCloud: %@", [[NSUbiquitousKeyValueStore defaultStore] objectForKey:@"theKey"]);
}
以便在来自iCloud时捕获数据。
我在iOS应用程序中执行所有操作,在将数据存储在 NSUbiquitousKeyValueStore 中时执行额外操作:
// Script 1
[[NSUbiquitousKeyValueStore defaultStore] setDictionary:@{@"id":@1} forKey:@"theKey"];
我的测试场景是:
我做的一切都是正确的,还是我理解错了?
答案 0 :(得分:2)
嗯,可能,但可能失败的原因包括:
ubiquityIdentityToken
以验证这一点。@1
设置为值,因此完全有可能已经收到该值并且新尝试不会更改任何内容。对于测试,可能有助于将@1
替换为@([NSDate timeIntervalSinceReferenceDate])
,以确保每次都获得不同的值。答案 1 :(得分:0)
通过重置iCloud的文档和数据,我已经成功完成了iCloud同步:http://support.apple.com/kb/HT5824
有时候,iCloud会对已经同步的内容和测试内容感到困惑,特别是当您重复进行相同的更新时,我的体验更有可能。