Cloudkit : FetchUserRecordIdWithCompletionHandler returns 之前的用户 ID
Cloudkit : FetchUserRecordIdWithCompletionHandler returns previous user id
当我注销我的 Icloud 帐户并使用另一个帐户登录并 return 我的应用程序时,我遇到了 fetchUserRecordIdWithCompletionHandler 问题。然后我再次获取用户记录 ID 以更新数据,然后它从注销的用户那里获取以前的 ID,而不是新用户的 ID。我假设 cloudkit 正在缓存用户 ID,并且当用户注销并使用另一个 ID 登录时它不会更新它。
然而,当应用程序终止并再次打开时,它会识别新 ID。
任何人都知道如何解决这个问题或者这是一个错误。
提前致谢
我遇到了同样的问题,将 XCode 更新到 7.1 后解决了!
我刚刚对此进行了测试,它至少已在 iOS 9.2 中修复,但可能更早。当我发现时,我会更新这个post。
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[CKContainer defaultContainer] fetchUserRecordIDWithCompletionHandler:^(CKRecordID * _Nullable recordID, NSError * _Nullable error) {
if(error){
NSLog(@"error fetching user record");
return;
}
NSLog(@"user %@", recordID);
}];
}
当我注销我的 Icloud 帐户并使用另一个帐户登录并 return 我的应用程序时,我遇到了 fetchUserRecordIdWithCompletionHandler 问题。然后我再次获取用户记录 ID 以更新数据,然后它从注销的用户那里获取以前的 ID,而不是新用户的 ID。我假设 cloudkit 正在缓存用户 ID,并且当用户注销并使用另一个 ID 登录时它不会更新它。
然而,当应用程序终止并再次打开时,它会识别新 ID。
任何人都知道如何解决这个问题或者这是一个错误。
提前致谢
我遇到了同样的问题,将 XCode 更新到 7.1 后解决了!
我刚刚对此进行了测试,它至少已在 iOS 9.2 中修复,但可能更早。当我发现时,我会更新这个post。
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[CKContainer defaultContainer] fetchUserRecordIDWithCompletionHandler:^(CKRecordID * _Nullable recordID, NSError * _Nullable error) {
if(error){
NSLog(@"error fetching user record");
return;
}
NSLog(@"user %@", recordID);
}];
}