См. предыдущий ответ на аналогичный вопрос.
Краткое резюме:
- Когда набор данных относительно мал и имеет низкую сложность, вы можете использовать коллекции (NSArray, NSDictionary, NSSet), записанные на диск как plist.
- Когда наборы данных очень большие, но с низкой сложностью, например файл библиотечной карточки, где все карточки абсолютно одинаковы и не связаны друг с другом, тогда сырой SQL может быть хорошим решением.
- Когда сложность высокая, т. Е. Много разных типов объектов, связанных друг с другом, используйте Базовые данные независимо от размера данных.
Однако, как только вы успешно поднимитесь по кривой обучения Базовых Данных, ее станет настолько легко использовать, что вы все время будете использовать ее по умолчанию. Теперь я использую его автоматически даже для вещей, для которых я когда-то использовал массивы.
Если вы намерены практиковаться в написании приложений Apple API, было бы неплохо потратить ваше время на изучение основной информации в течение недели или двух. Это не просто API персистентности, это API для создания и использования всего уровня модели дизайна Model-View-Controller, который использует Apple API,
(Кстати, я советую Big-Nerd Ranch по поводу сохранения на основе plist в MacOS. Ограничения памяти и процессора на устройствах iOS намного более жесткие. Кроме того, устройства iOS используют флэш-накопители, поэтому штраф за работу с диском очень намного ниже, чем для таких устройств, как настольные компьютеры, использующие механические жесткие диски.)