Cloudkit:FetchUserRecordIdWithCompletionHandler返回先前的用户ID

时间:2015-09-19 15:44:30

标签: ios swift login icloud cloudkit

当我退出Icloud帐户并使用其他帐户登录并返回我的应用时,我遇到了fetchUserRecordIdWithCompletionHandler的问题。然后我再次获取用户记录ID以更新数据,然后从注销的用户获取以前的ID,而不是新用户的ID。我假设cloudkit正在缓存用户ID,并且当用户注销并使用另一个id登录时它不会更新它。

然而,当应用程序终止并再次打开时,它确实识别出新的ID。

任何人都知道如何解决这个问题,或者这是一个错误。

提前致谢

2 个答案:

答案 0 :(得分: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);
    }];
}

答案 1 :(得分:0)

我遇到了同样的问题,将XCode更新为7.1后解决了这个问题!