Я работаю над новым приложением, которое использует Core Data и iCloud. Я следую демонстрации iCloudCoreDataStack и iCloud Design Guide. Пока синхронизация между устройствами работает хорошо, но я не понял, как засеять небольшой объем данных при первом использовании приложения на первом устройстве пользователя и пропустить посев, если приложение используется на второй (поскольку он должен загружаться из iCloud).Как занести исходные данные в Core Data + iCloud?
Это должно быть легко, просто спросите контейнер iCloud, если у него есть какие-либо данные. Загрузите данные, если они существуют, или создайте новые данные, если это не так. Но я не мог найти способ сделать это :-(
я могу думать о трех путях решения этого:
Использование migratePersistentStore: toURL: опции: withType: ошибка: У меня есть очень небольшое количество данных, так что в этом случае это выглядит как излишний
магазин значение на NSUbiquitousKeyValueStore, чтобы отметить, если начальная синхронизация была сделана я попытался с помощью NSUbiquitousKeyValueStore, но иногда это заняло бы слишком много времени, чтобы получить значение от UbiquitousKeyValueStore, поэтому исходные данные будут созданы даже тогда, когда они не нужны, что приведет к дублированию.
Используйте файл дозорный, чтобы иметь тот же эффект # 2 (я не знаю, как это реализовать)
Приложение является IOS 7 только и новые, так что нет никакой необходимости мигрировать старые пользовательские данные.
Каждого соответствующие учебник и книга, которую я нашел, казались, используя предварительно iOS7 супер сложный способ делать вещи (например, с использованием резервного хранилища), который не стоит на прошивке 7.
Либо я пропускаю что-то (часто бывает), или это сложнее, чем должно быть. Я ценю любые предложения и указатели.
Но как избежать использования второго постоянного хранилища, когда приложение используется на втором устройстве? (то есть данные должны быть загружены из iCloud). – kroger
Как он сказал, не засевайте данные, не берете данные о семенах и не добавляйте их в качестве второго постоянного хранилища только для чтения в свой 'NSPersistentStoreCoordinator'. Это избавит вас от боли позже, когда вам нужно «обновить» данные семян. –
Я расширю свой ответ, чтобы освежить этот момент. – ImHuntingWabbits