[英]How to make iCloud data sync user specific?
當我將用戶數據(如果用戶請求)同步到iCloud(使用NSUbiquitousKeyValueStore
)時,它將正確同步。 但是,當我使用2個不同的設備(具有2個不同的Apple ID)時,我在兩個設備上都看到了SAME數據,並且仍然可以在它們之間進行同步。 因此,多個用戶可以看到彼此的數據。
有什么方法可以使同步用戶特定,或者我在某個地方犯了錯誤?
我使用的一些代碼:
NSUbiquitousKeyValueStore *icloudatas = [NSUbiquitousKeyValueStore defaultStore];
//save to iCloud
[icloudatas setString:[NSString stringWithFormat:@"%i",
[defaults integerForKey:@"lvl"]] forKey:@"lvl"];
//load from iCloud
[defaults setInteger:[[icloudatas stringForKey:@"lvl"] integerValue] forKey:@"lvl"];
[defaults syncronise];
[icloudatas synchronize];
問題解決:
我剛剛在App Store中更改了我的Apple ID,但忘記了在iCloud中進行更改。 那解決了我的問題,一切正常。
您不應該將詳細信息復制到應用程序內的NSUserDefaults
。 這就是您混合來自不同用戶的詳細信息的方式。 只需NSUbiquitousKeyValueStore
使用NSUbiquitousKeyValueStore
。
好吧,更現實的是,您可以復制數據,但不應該總是在兩個商店之間都復制所有數據。
你應該觀察NSUbiquityIdentityDidChangeNotification
和NSUbiquitousKeyValueStoreDidChangeExternallyNotification
和檢查的原因NSUbiquitousKeyValueStoreAccountChange
(從NSUbiquitousKeyValueStoreChangeReasonKey
)。 當您檢測到用戶帳戶已更改時,您需要將所有本地數據“重置”為默認值或雲值(並在此之前防止對雲值進行任何更新)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.