我使用NSUbiquitousKeyValueStore
同步我的應用程序的喜好,以及我在一臺設備中進行更改我測試使用兩個設備iPhone 3GS和iPhone 4iOS版 - NSUbiquitousKeyValueStore不「實際上是」同步
同步過程(說的iPhone 3GS),它同步使用下面的代碼的偏好NSUbiquitousKeyValueStore
:發生
NSUbiquitousKeyValueStore *keyStore = [NSUbiquitousKeyValueStore defaultStore];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[keyStore setObject:[userDefaults objectForKey:S_KEY_UI_SOUNDS]
forKey:S_KEY_UI_SOUNDS];
if ([keyStore synchronize]) {
NSLog(@"TO ICLOUD - UI SOUNDS %@", [keyStore objectForKey:S_KEY_UI_SOUNDS]);
}
但是兩個問題:
第一:人雖然已註冊爲NSUbiquitousKeyValueStoreDidChangeExternallyNotification
,但我從來沒有在iPhone 4上收到過它。因此,如果iPhone 4在iPhone 3GS更改首選項時處於活動狀態,則iPhone 4將不知情。
第二個:隨着iPhone開始同步NSUbiquitousKeyValueStore
的偏好,它永遠不會獲得使用iPhone 3GS的新偏好設置(請參閱下面的代碼)。這是儘管與NSUbiquitousKeyValueStore
成功同步(同步方法返回YES)。
NSUbiquitousKeyValueStore *keyStore = [NSUbiquitousKeyValueStore defaultStore];
if ([userDefaults synchronize]) {
NSLog(@"FROM - UI SOUNDS %@", [keyStore objectForKey:S_KEY_UI_SOUNDS]);
}
是否有解決方案?或者我做錯了什麼?
另外,不要忘記你應該有兩個設備上的iCload設置你的Apple ID帳戶... – 2012-09-24 11:08:11