Возникла проблема, с которой я столкнулся при переключении тестовых учетных записей iCloud на моем устройстве, чтобы проверить, правильно ли мое приложение обрабатывает обнаружение изменений учетной записи iCloud.
Поэтому у меня есть данные, хранящиеся как в CloudKit, так и в NSUbiquitousKeyValueStore
.
Когда я выхожу из учетной записи iCloud A с настройками iOS, приложение автоматически убивается (что, я думаю, нормально).Затем, когда я вхожу в учетную запись iCloud B и перезапускаю приложение, я получаю правильную учетную запись iCloud (B) при вызове метода fetchUserRecordID
.
Проблема заключается в том, что NSUbiquitousKeyValueStore
необновиться сразу, и сохраненный файл .plist
в SynchedPreferences
, который поддерживает NSUbiquitousKeyValueStore
, по-прежнему содержит предыдущую информацию iCloud, хотя я явно вызываю метод synchronize
после обнаружения изменения iCloud.
Вопрос здесь заключается в том, нужно ли делать что-то еще, чтобы синхронизация NSUbiquitousKeyValueStore
активировалась при изменении учетной записи iCloud?Или мне просто нужно дождаться появления уведомления didChangeExternallyNotification
, что может занять от 3 до 30 минут, или (в некоторых других случаях, как я заметил) может потребоваться перезапуск приложения?