2014-12-03 8 views
1

В моем приложении я использую RestKit v0.23.3, и мне нужно позвонить по 4 веб-сервисам последовательно. Я делаю это без каких-либо проблем, следуя различным учебным пособиям, которые можно найти в Интернете.Откат резервных копий и основных данных

Моя проблема в том, что Обязательно загрузите все 4 службы или данные могут быть непоследовательными.

мой вопрос: могу ли я выполнить откат по CoreData, если одна из веб-служб терпит неудачу во время операций загрузки/отображения? Или существует режим отключения функции автоматического сохранения в постоянном хранилище, который RestKit имеет и сохраняет «вручную» только при завершении последней веб-службы?

Заранее за вашу помощь.

+0

Вы пробовали использовать NSUndoManager? хотя, по моему опыту, NSUndoManager не всегда надежный. –

+0

Пока нет, но я могу попробовать, и я благодарю вас за вход. Во всяком случае, единственный надежный способ, который я вижу, - передать NSDictionary вместо прямого сопоставления объектов объектам CoreData, но я действительно не знаю, является ли это лучшей практикой. – Danno

ответ

0

Если это действительно необходимо, у меня возникнет соблазн использовать решение на основе диска - т.е. перед тем, как начать любую потенциально разрушительную/разлагающуюся операцию, вы гарантируете, что все будет сохранено и сделайте копию хранилища данных на диске (обратите внимание, что возможно, потребуется сохранить несколько файлов, чтобы лучше использовать API, например migratePersistentStore:toURL:options:withType:error:). Теперь, если у вас есть проблема, вы можете разорвать стек Core Data, восстановить с диска и затем воссоздать стек. Это безопаснее и надежнее, чем попытка предотвратить сохранение или использовать диспетчер отмены, поскольку процесс загрузки выполняется по нескольким потокам, поэтому вам действительно нужны сохраненные функции.

+0

Это звучит неплохое решение для редких изменений, происходящих от нечастых вызовов службы. –

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