Это зависит. Если у вас нет реальной проблемы с производительностью, делайте то, что более читабельно и подходит для вашего приложения. Например, если вы сохраняете данные, для которых пользователь может добавлять какие-либо записи, базовые данные обрабатывают для этого общие ситуации и могут использоваться с контроллером извлеченных данных для управления таблицей достаточно плавно. Он также может легко привязываться к вашей объектной модели, поэтому вам не нужно выполнять поиск ключей.
Если у вас есть достаточное количество статических данных или редактируемых значений в статическом списке ключей, и вам всегда нужно загружать все из них, продолжайте и загрузите plist для удобства. Отправьте больше информации о вашей конкретной ситуации, и я смогу обновить свой ответ.
UPDATE:
Я думаю, вы, вероятно, захотите использовать Core Data по нескольким причинам. Во-первых, если каждый из этих объектов имеет одинаковые 8 ключей, вы захотите представлять каждый из них связанным объектом вместо словаря. Во-вторых, основные данные предназначены для поиска, сортировки и фильтрации. В-третьих, с NSFetchedResultsController не намного сложнее связать его с таблицей (с правильными индексами) или селектором скроллера. Если вы назовете свойства вашего NSManagedObject такими же, как ваши 8 ключей, будет довольно просто загрузить их из JSON, используя KVC.
Вы могли бы использовать plist, но вам придется больше работать.