2015-09-19 3 views
2

У меня проблема с fetchUserRecordIdWithCompletionHandler, когда я выхожу из учетной записи Icloud и вхожу в другую учетную запись и возвращаюсь в свое приложение. И я снова беру идентификатор записи пользователей, чтобы обновить данные, затем он извлекает предыдущий идентификатор из выведенного пользователя, а не идентификатор нового пользователя. Я предполагаю, что cloudkit кэширует идентификатор пользователя, и он не обновляет его, когда пользователь подписывается и подписывается с другим идентификатором.Cloudkit: FetchUserRecordIdWithCompletionHandler возвращает прежний идентификатор пользователя

Однако, когда приложение завершается и открывается снова, оно распознает новый идентификатор.

Кто-нибудь знает, как решить эту проблему или это ошибка.

Заранее спасибо

+0

Внедрили ли вы следующее для регистрации изменений входа? это называется? NSNotificationCenter.defaultCenter(). AddObserverForName (NSUbiquityIdentityDidChangeNotification, object: nil, queue: nil) {_ in –

+0

Да, я сделал это, и он вызывается, когда происходит изменение, но когда я пытаюсь извлечь новый идентификатор, он продолжает возвращать старый. .. – clickbeast

ответ

0

У меня была такая же проблема, и она была решена после обновления XCode 7.1!

0

Я только что протестировал это, и он исправлен, по крайней мере, в 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); 
    }]; 
} 
Смежные вопросы