Лекция №8

Хранение данных

Николай Морев

NSUserDefaults

  • Простота использования
  • Только для небольших данных
  • Глобальное пространство имен внутри приложения
  • Файл настроек делится между всеми компонентами приложения

NSCoding

  • Простота реализации и использования
  • Быстрый доступ после загрузки
  • Граф объектов хранится целиком в оперативной памяти
  • Граф объектов сохраняется и восстанавливается целиком единовременно
  • Миграция данных затруднительна
  • Не многопоточный
  • Не мультипроцессный

SQLite

  • Привычная реляционная модель
  • Популярный Open-Source проект
  • Запрашиваем только необходимое
  • Удобная миграция
  • Многопоточность и многопроцессность
  • Кроссплатформенность
  • Библиотека поставляется с SDK

SQLite

  • Ручное отображение данных в объекты
  • Требуется знание SQL и особенностей SQLite
  • Реляционная модель не всегда удобна

Core Data

  • Интеграция с Xcode
  • Object-relational mapping
  • Автоматическая подгрузка данных
  • Удобная миграция
  • Многопоточность и многопроцессность

Core Data

  • Переносимость: только Apple
  • Оптимизировано не для всех use-case-ов
  • Сложно использовать правильно