簡體   English   中英

如何使iCloud數據同步用戶特定?

[英]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

好吧,更現實的是,您可以復制數據,但不應該總是在兩個商店之間都復制所有數據。

你應該觀察NSUbiquityIdentityDidChangeNotificationNSUbiquitousKeyValueStoreDidChangeExternallyNotification和檢查的原因NSUbiquitousKeyValueStoreAccountChange (從NSUbiquitousKeyValueStoreChangeReasonKey )。 當您檢測到用戶帳戶已更改時,您需要將所有本地數據“重置”為默認值或雲值(並在此之前防止對雲值進行任何更新)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM