繁体   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