Cloudkit:FetchUserRecordIdWithCompletionHandler 返回以前的用户 ID
Posted
技术标签:
【中文标题】Cloudkit:FetchUserRecordIdWithCompletionHandler 返回以前的用户 ID【英文标题】:Cloudkit : FetchUserRecordIdWithCompletionHandler returns previous user id 【发布时间】:2015-09-19 15:44:30 【问题描述】:当我注销我的 Icloud 帐户并使用另一个帐户登录并返回我的应用程序时,我遇到了 fetchUserRecordIdWithCompletionHandler 的问题。我再次获取用户记录 ID 以更新数据,然后它从退出的用户那里获取以前的 ID,而不是新用户的 ID。我认为 cloudkit 正在缓存用户 ID,并且当用户注销并使用另一个 ID 登录时它不会更新它。
但是,当应用程序终止并再次打开时,它会识别新 ID。
任何人都知道如何解决这个问题,或者这是一个错误。
提前致谢
【问题讨论】:
您是否实施了以下操作来捕获登录更改?它被称为? NSNotificationCenter.defaultCenter().addObserverForName(NSUbiquityIdentityDidChangeNotification, object: nil, queue: nil) _ in 是的,我做到了,它在更改发生时被调用,但是当我尝试获取新的 id 时,它一直返回旧的... 【参考方案1】:我刚刚对此进行了测试,它至少在 ios 9.2 中已修复,但可能更早。当我发现时,我会更新这篇文章。
- (void)applicationDidBecomeActive:(UIApplication *)application
[[CKContainer defaultContainer] fetchUserRecordIDWithCompletionHandler:^(CKRecordID * _Nullable recordID, NSError * _Nullable error)
if(error)
NSLog(@"error fetching user record");
return;
NSLog(@"user %@", recordID);
];
【讨论】:
【参考方案2】:我也遇到了同样的问题,更新 XCode 到 7.1 后解决了!
【讨论】:
以上是关于Cloudkit:FetchUserRecordIdWithCompletionHandler 返回以前的用户 ID的主要内容,如果未能解决你的问题,请参考以下文章
cloudKit:公共数据库中的 CKFetchRecordChangesOperation