Модернизация моего приложения для iCloud

Я несколько дней ломаю голову над тем, как модифицировать свое приложение для iCloud, и надеюсь, что кто-нибудь может помочь. После преодоления проблем с подписью кода я не уверен, что понимаю модель для включения iCloud. Сначала я расскажу вам проблему, которую пытаюсь решить, поскольку я убежден в том, что нужно рассказывать людям, что я пытаюсь сделать, прежде чем они попытаются исправить то, как я это делаю:-)

Рабочий процесс моего приложения

  1. Пользователь просматривает магазин, в котором перечислены серии учебных планов, которые они могут загрузить
  2. Пользователь выбирает план и скачивает его
  3. Я извлекаю план обучения из нашего веб-сервера, адаптированный к их потребностям
  4. Я добавляю имя файла для плана обучения, который они скачали, в список планов, которыми они владеют
  5. Пользователь открывает план тренировок и видит ежедневное расписание

Я хочу, чтобы пользователь мог сделать это на своем iPhone, а затем открыть свой iPad и увидеть точно такие же планы тренировок, синхронизированные там.

Моя проблема, я в настоящее время сохраняю файлы в каталог документов, и это работает просто отлично. Как дооснастить это для работы с iCloud так, чтобы люди, у которых не включен iCloud, могли продолжать использовать приложение, но те, кто получил дополнительное преимущество?

Насколько я понимаю, я не совсем понимаю, нужно ли мне сохранять в папку "Документы", а затем сохранять копию в папке "iCloud" ИЛИ просто ли я теперь буду писать в папку "iCloud".

Если это первое, я думаю, что я просто пишу копию файлов папки "Документы" в область iCloud, чтобы подтолкнуть его вверх, но как мне обнаружить новый файл в папке iCloud и скопировать его обратно в папку "Документы"?

Если это последнее, файлы должны просто существовать, верно?

Я надеюсь, что это последний, и он по-прежнему поддерживает устройства без iCloud включен...

Спасибо за любую помощь в разъяснении.

Адам

2 ответа

Решение

API iCloud довольно хорошо документирован, и есть специальная глава, которая посвящена тому, что вам нужно:

Управление жизненным циклом документа

Документ проходит типичный жизненный цикл. Основанное на документе приложение ответственно за управление его продвижением через этот цикл. Как видно из следующего списка, большинство этих событий жизненного цикла инициируются пользователем:

  1. Пользователь сначала создает документ.
  2. Пользователь открывает существующий документ, и приложение отображает его в представлении или представлениях документа.
  3. Пользователь редактирует документ. Пользователь может попросить поместить документ в хранилище iCloud или может запросить удаление документа из хранилища iCloud.
  4. Во время редактирования, сохранения или других действий могут возникнуть ошибки или конфликты; приложение должно узнать об этих ошибках и конфликтах и ​​либо попытаться устранить их, либо проинформировать пользователя.
  5. Пользователь закрывает выбранный документ. Пользователь удаляет существующий документ. В следующих разделах обсуждаются процедуры, которые приложение на основе документа должно выполнить для этих операций жизненного цикла.

По сути, ваше приложение отвечает за определение того, доступен ли iCloud для конкретного пользователя, а затем подтверждает, что пользователь хочет хранить свои данные в облаке. Основываясь на этом выборе, вам нужно будет решить, как переместить существующие данные из каталога документов в облачный URL-адрес.

На других устройствах, которые настроены на использование хранилища iCloud, у вас есть возможность обнаружить документы, доступные через запрос метаданных.

http://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/DocumentBasedAppPGiOS/ManageDocumentLifeCycle/ManageDocumentLifeCycle.html#//apple_ref/doc/uid/TP40011149-CH4-SW1

Если вы ищете очень простой пример, который реализует iCloud, взгляните на это:

Основы iCloud и пример кода

Это дает вам конкретный пример того, как реализовать некоторые этапы, которые Рог упомянул в своем посте выше. Надеюсь это поможет.

Другие вопросы по тегам