Вы можете использовать plist, только если объем данных относительно невелик. Plist полностью загружен в память, поэтому вы можете использовать его только в том случае, если сможете поддерживать все объекты, созданные plist, в памяти сразу столько времени, сколько вам нужно.
Базовые данные имеют кривую обучения, но при использовании они обычно менее сложны, чем SQL. В большинстве случаев «более простой» SQL приводит к большему количеству кодирования, поскольку в конечном итоге вам приходится дублировать большую часть функциональных возможностей Core Data, чтобы вставить процедурный SQL в объектно-ориентированный API. Вы должны вручную управлять использованием памяти всех данных, отслеживая срок хранения. Вы пишете много кода SQL каждый раз, когда вам нужны данные. Я обновил несколько приложений с SQL на Core Data, и во всех случаях реализация Core Data была меньше и чище, чем SQL.
Память или нагрузка процессора не увеличиваются. Базовые данные высоко оптимизированы. В большинстве случаев стандартные данные более эффективны, чем вручную настроенный SQL. Одна небольшая подоптимизация в SQL обычно разрушает любые теоретические преимущества, которые она может иметь.
Конечно, если вы уже обладаете высокой квалификацией в управлении SQL в C, то лично вы можете быстрее вывести приложение на рынок, используя SQL. Однако, если вам интересно, что вы должны планировать использовать в целом на платформах Apple, Core Data - это почти всегда ответ, и вы должны потратить время на его изучение.