Я бы предложил доставить двоичный файл .plist с исходными данными и при первом запуске выгрузить его в CoreData.
Также я могу предложить вам не использовать CoreData, если ваш список будет неизменным.Просто прочитайте список при запуске приложения и сохраните его в экземпляре некоторого экземпляра AppDelegate.
Обновите (чтобы отразить комментарий): Если это несколько тысяч записей - вы ДОЛЖНЫ импортировать его в основные данные какэто улучшит производительность извлечения данных.Кроме того - я бы не советовал хранить ВСЕ их в памяти.
Чтобы получить данные в plist, вы можете использовать какой-нибудь другой язык программирования, чтобы выбрать все данные из базы данных и экспортировать их в xml plist (есть библиотеки дляпрактически любой язык программирования).Затем с помощью редактора списка свойств вы сможете экспортировать его в двоичный список.
Затем, в зависимости от того, что вам нужно делать с вашими данными - вы можете импортировать его либо в фоновом режиме, либо просто показать индикатор / индикатор выполнения.пользователю при использовании основного потока для импорта.Я считаю, что plist займет несколько МБ.Кроме того - попробуйте сравнить тысячи записей, чтобы получить приблизительную оценку того, сколько времени займет импорт данных.