Если вы используете ASIHTTPRequest для своей сети (а если вы еще этого не делаете, я не могу достаточно высоко петь его похвалы), вы обнаружите, что в нем есть встроенный слой кеша, который идеально подходит для подобных ситуаций.
Вы можете активировать его с помощью одной строки;
[ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]];
И у вас есть полный контроль над политикой кэширования и т. Д. - просто прочитайте документацию.
Другой простой подход, конечно, заключается в том, что ваш веб-сервис возвращает JSON или XML, просто чтобы сохранить ответ в локальном файле для хеша параметров запроса, а затем, когда вы снова запросите данные, вы сначала можно посмотреть, существует ли файл, и если он существует, вернуть эти данные, а не возвращаться на сайт. Вы также можете использовать свою собственную политику кэширования и т. Д.
С тех пор как я обнаружил, что ASIHTTPRequest имеет кеш, мне больше не нужно было накатывать свои собственные.
Я считаю, что использование coreData или sqllite3 просто излишне для 99% моих требований, и простой кэш работает очень хорошо.