SQLite - это база данных.Он в основном хранит данные, организованные в виде таблиц схожих данных, разбитых на строки отдельных элементов данных.
CoreData - это хранилище объектов.Он хранит произвольный граф многих объектов и их связей между собой.То, что он использует SQLite, является вспомогательным по отношению к его реальной функции, он может (и делает) с тем же успехом сохранять этот граф в файле XML, файле списка свойств или других произвольных форматах данных.
Что касается того, почему вы используетеCoreData вместо SQLite - это в первую очередь простота.С SQLite вам приходится читать строки из таблиц и восстанавливать отдельные полезные объекты.С CoreData это все прозрачно для вас, а также множество других проблем, таких как межпотоковая синхронизация и миграция (изменения от версии к версии).