Vous ne pouvez utiliser la plist que si la quantité de données est relativement faible. Les plistes sont entièrement chargées en mémoire, de sorte que vous ne pouvez vraiment les utiliser que si vous pouvez maintenir tous les objets créés par la pliste en mémoire en même temps, aussi longtemps que vous en avez besoin.
Core Data a une courbe d'apprentissage mais, à l'usage, il est généralement moins complexe que SQL. Dans la plupart des cas, le SQL "plus simple" conduit à plus de codage parce que vous finissez par devoir dupliquer une grande partie de la fonctionnalité de Core Data pour insérer le SQL procédural dans l'API orientée objet. Vous devez gérer manuellement l'utilisation de la mémoire de toutes les données en suivant la rétention. Vous devez écrire beaucoup de code SQL chaque fois que vous voulez des données. J'ai mis à jour plusieurs applications de SQL à Core Data et dans tous les cas, l'implémentation de Core Data était plus petite et plus propre que SQL.
La mémoire ou le processeur ne sont pas plus importants. Core Data est hautement optimisé. Dans la plupart des cas, Core Data prêt à l'emploi est plus efficace qu'un système SQL paramétré à la main. Une sous-optimisation mineure dans SQL détruit généralement tout avantage théorique qu'il pourrait avoir.
Bien sûr, si vous êtes déjà très compétent dans la gestion de SQL en C, vous pourrez peut-être commercialiser l'application plus rapidement en utilisant SQL. Cependant, si vous vous demandez ce que vous devriez prévoir d'utiliser en général sur les plateformes Apple, Core Data est presque toujours la réponse et vous devriez prendre le temps de l'apprendre.