Приложение для iOS отключает (отключает) диск iCloud на странице настроек устройства и получает iCloud persistentStore
Я разрабатываю приложение для iOS с синхронизацией iCloud. Я сохранял данные, используя основные данные с поддержкой синхронизации iCloud, и, если я отключил диск iCloud в настройках устройства, мое приложение не смогло прочитать сохраненные данные в UbiquityContainer. Теперь я хочу перенести данные о сохранении iCloud в локальное / другое место, когда пользовательский диск iCloud выключен. Но я не мог получить магазин постоянства iCloud. Я попытался следующие методы не работают.
NSPersistentStore *result = [self.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeURL
options:options
error:nil];
Результат - ноль. Потому что я не мог получить точный storeURL магазина повсеместности.
NSURL *iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"iCloud.com.Identifier"];
Дает ноль вместо URL. Есть ли способ получить хранилище iCloud после выключения диска iCloud. Потому что я не мог отобразить сохраненные в данных.
1 ответ
См. Следующую выдержку из документов Apple ( https://developer.apple.com/library/ios/documentation/General/Conceptual/iCloudDesignGuide/Chapters/DesignForCoreDataIniCloud.html)
Разработайте последовательность запуска для вашего приложения iCloud Core Data
Когда вы принимаете iCloud, будьте особенно внимательны при разработке последовательности запуска вашего приложения. В игру вступают следующие факторы, и вы должны учитывать их:
Пользователь мог или не мог ранее указать предпочтение использовать iCloud в вашем приложении; локальный экземпляр вашего приложения может или не может уже установить свое первоначальное хранилище в универсальном контейнере.
В качестве первого шага в последовательности запуска прочитайте базу данных локальных пользователей по умолчанию, используя общий объект NSUserDefaults. Во время работы вашего приложения используйте этот объект для сохранения пользовательских настроек, которые вам понадобятся при следующем запуске.
Пользователь может выйти из iCloud или переключиться на другую учетную запись.
Если пользователь выходит из iCloud или переключается на другую учетную запись, контейнеры повсеместности для ранее использованной учетной записи больше не будут доступны вашему приложению.
Локальное хранилище базовых данных может быть новее или старше, чем хранилище на
другое устройство принадлежит тому же пользователю.Во время запуска приложения Core Data может потребоваться согласование локального хранилища с журналами изменений из iCloud. Это может включать обнаружение и разрешение дублированных записей и конфликтов. Тестирование имеет решающее значение. Чтобы начать с некоторыми советами, обратитесь к разделу "Тестирование и отладка приложения iCloud", а также к "Передовым методам и устранению неполадок" в Руководстве по программированию iCloud для основных данных.