Это зависит от того, сколько данных вы хотите кэшировать и как вы будете получать к ним доступ после того, как вы их кэшировали, и кучу других проблем управления кэшем.
Если у вас небольшой объем данныхВы можете сохранить это в словаре или массиве, просто записать и прочитать. Но такое решение может стать медленным, если у вас много данных;эти чтения и записи могут занять много времени.А сброс грязного кэша на диск означает запись всего объекта.
Вы можете записывать отдельные файлы, но опять же, если у вас много файлов, которые также могут стать проблемой производительности.
Другой альтернативой является использование CoreData.Если у вас много данных (скажем, много объектов), имеет смысл определить, как они выглядят как сущности CoreData.Затем вы просто сохраняете и извлекаете объекты по мере необходимости, возвращаясь к извлечению из веб-службы (и затем кешированию), если данные не локальны.Вы также можете легко и эффективно оптимизировать другие задачи управления кешем (например, срок действия неиспользуемых записей) с помощью CoreData.
Я пошел по этому пути с парой разных приложений.Я начал с NSDictionary, и это стало довольно медленно.Я переключился на CoreData, которая не только упростила большую часть моего кода для инициализации и управления кэшем, но и дала приложениям значительный прирост производительности в процессе.