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