Как сохранить запись в CloudKit, когда подключение к Интернету недоступно

Вопрос довольно очевидный, но для меня ответ не совсем...

Итак, я хотел бы сохранить запись (записи) в CloudKit, и я это делаю, когда подключение к Интернету позволяет мне это сделать, но как этого добиться, когда нет ни Wi-Fi, ни 3G/LTE, например, в «Самолете». Режим'.

Я не хочу обновлять каждые 15/30 минут, например, получать новые письма, а сохранять, когда возвращается сетевое соединение.

Есть идеи, пожалуйста?


person Zsolt    schedule 14.10.2014    source источник


Ответы (1)


Единственный способ добиться этого — сохранить данные локально, а затем синхронизировать их в момент подключения. Это зависит от типа данных, как вы будете хранить их на своем устройстве. какова лучшая структура для этого. Вы можете сохранить его в CoreData или просто в XML или в другом файле. Для этого вам нужен механизм синхронизации.

Возможно, вы захотите проверить это: Использование Core Data, iCloud и CloudKit для синхронизации и резервного копирования и как это работает вместе

person Edwin Vermeer    schedule 14.10.2014
comment
Да, я использую Core Data и храню NSManagedObjects в изменяемом массиве, но не уверен, где я должен вызывать этот метод. Любое предложение? Метод, который наблюдает за доступностью в сети, находится в AppDelegate, но объекты, ожидающие загрузки, находятся в другом .m-файле. BTW, спасибо за ответ! - person Zsolt; 14.10.2014
comment
вот статья с дополнительной информацией о том, как его использовать: atomicbird.com/blog /cloudkit-moves-like-azure и пошаговое руководство: timroadley.com/2012/04/03/core-data-in-icloud - person Edwin Vermeer; 14.10.2014
comment
Я храню все удаления и изменения записей в двух массивах CKRecordIDs и CKRecords. В подходящий момент (например, при внесении изменений в группу) я пытаюсь синхронизировать их с CloudKit. Если нет доступного соединения, я держусь за них и продолжаю добавлять в список. Если приложение нужно закрыть, я сохраняю эти два файла (вместе с текущими данными для приложения) и восстанавливаю их при следующем запуске приложения. - person Peter Johnson; 14.01.2016