Я работаю над облегченной оболочкой для UIManagedDocument, которая управляет наличием нескольких документов в учетной записи iCloud человека. См.: APManagedDocumentПравильное использование резервных хранилищ iCloud
Я полагаюсь на использование резервных хранилищ в iOS 7 и заботясь как можно меньше о текущем состоянии iCloud. Таким образом, выпускающие основные данные делать то, что он делает лучше всего в отношении замещающих магазинов основаны на моем понимании от WWDC 2013 Видео - Session 207 What’s New in Core Data and iCloud
Сначала краткий обзор того, как работает мой менеджер: Я создаю все мои UIManagedDocuments
в местном песочнице и установите соответствующие параметры хранилища, чтобы включить синхронизацию iCloud. Я никогда не перемещаю пакет UIManagedDocument
из песочницы.
- Когда я хочу знать, какие документы существуют в облаке, я выполняю запрос метаданных.
- Когда я хочу открыть один из этих документов, я проверяю, существует ли он в локальной песочнице, и если он не создается в локальной изолированной программной среде. (Это требует, чтобы приложение должно было ждать уведомления, соответствующего сообщению
Using local storage: 0
.) - С этим настройкой мне никогда не нужно знать, включен ли iCloud или вошел в систему. Я просто работаю локально и позволяю основным данным с iCloud.
До сих пор все работает замечательно, но я столкнулся с небольшим количеством маринада со сценарием, когда пользователь создает новый документ до входа в ICloud и я представлены следующие вопросы:
- I не может выполнить запрос метаданных, потому что iCloud не запрашивает запрос.
- Из-за 1 я должен вернуться к выполнению интеллектуального локального сканирования, ищущего пакеты, на которых есть «local/store/persistentStore», и перечисляя их как действительные документы.
- Позже, когда пользователь входил в систему, я понял, что данные ядра будут перемещать данные локального хранилища в облако, но я этого не вижу. Вместо этого я вижу, что для учетной записи iCloud создается новый постоянный магазин и нет данных.
Мой большой вопрос - это правильный подход, когда дело доходит до местного резервного магазина? Где мои предположения ошибочны?
Это одна из последних частей, которые мне нужно отправить с обновлением iOS 7. Любая и вся обратная связь будет очень признательна и будет отражена в моем проекте github, чтобы другие могли учиться на моих ошибках.
У меня есть дубликат этого вопроса на форумах разработчиков Apple. Я обновлю эту тему с любыми выводами, которые я получаю оттуда. Я думаю, что этот вопрос важен и остается нерешенным с выпуском iOS 7. Резервные магазины - это огромный прогресс в технологии iCloud, но часть локального хранилища все еще немного неопределена.
я открыл тикет с Apple, мы надеемся решить этот вопрос. – dtrotzjr
@dtrotzr .... любое обновление по билету поддержки? У меня также такая же проблема .... – Max
@Max см. Мой ответ ниже. Apple, наконец, вернулась ко мне, но меня не волнует ответ, который я чувствую, что инженер не нашел времени, чтобы полностью понять мой ответ, или я делаю все неправильно с резервными магазинами. – dtrotzjr