2015-01-20 2 views
0

Наше приложение поддерживает офлайн-активность. Смысл мы хотим сохранить локально создание новых объектов данных ядра, а также любые модификации существующих объектов. Затем, когда приложение снова подключится к сети, мы автоматически переместим эти изменения (и любые зависимости) на сервер.RestKit автоматически POST/PUT при обратном подключении онлайн

Я бы подумал, что RestKit будет поддерживать такую ​​операцию, но в настоящее время в автономном режиме мы храним творения/модификации в локальном кеше. Если я убью приложение, эти изменения не будут сохранены. Кроме того, RestKit не пытается отправить эти элементы в их первоначально предназначенные конечные точки.

Я не могу найти документацию для поддержки того, что нам нужно здесь.

Есть ли способ для RestKit сделать то, что нам нужно?

Если нет, то как мне получить офлайн-изменения для сохранения на диске (а не в кеше)? Тогда было бы уместно отметить те, которые не были загружены на сервер, а затем попытаться загрузить их, когда мы снова в сети?

Любые другие важные вещи, которые я должен рассмотреть?

ответ

1

На момент написания статьи RestKit не поддерживает эту функцию.

Для сохранения на диске вам нужно позвонить saveToPersistentStore:, а не только save: на MOC.

Вам необходимо реализовать схему самостоятельно, соблюдая «онлайн» статус приложения и сканирование хранилища данных для вещей, которые необходимо загрузить (что означает поддержание флага, чтобы указать, произошло ли это еще).

1

Я решил эту проблему, добавив к моему объекту другое поле под названием «обновлено». Это поле имеет значение true или 1, когда объект создан или изменен. Каждый раз, когда приложение запускается или синхронизируется, он выполняет итерацию через локальную копию данных ядра и отправляет объекты с «обновленным» набором. В веб-службе ответ ALWAYS очищает «обновленный» до «false» при возврате ответа. Это хорошо работает в случае, когда веб-служба и приложение находятся в режиме онлайн.

Смежные вопросы