56 votes

Utilisation CoreData ou SQLite sur l'iPhone?

Depuis CoreData est devenu disponible pour l'iPhone OS 3.0, est-il censé être la réponse à la persistance des données et de les remplacer tous pour SQLite?

Quelles sont les raisons qui existent encore à l'utilisation de SQLite? Quels sont les avantages/inconvénients de SQLite vs CoreData?

62voto

Brad Larson Points 122629

C'est une question ici:

En résumé, les Données de Base peuvent grandement simplifier votre code, en particulier pour des modèles d'objet complexes. Vous obtenez annuler / refaire l'appui de presque gratuitement avec elle. Il fournit également une partie très importante des avantages de performance, en particulier sur l'iPhone. Même si cela semble paradoxal, compte tenu de la façon dont beaucoup de frais généraux vous pensez que le cadre a, dans la plupart des cas, vous pouvez battre la performance de la main-écoute SQLite en utilisant des Données de Base. Sur l'iPhone, il fait un excellent travail de dosage extrait de minimiser l'utilisation de la mémoire.

Le seul inconvénient, comme l'a souligné, c'est que cela vous limite en exigeant de l'iPhone OS 3.0 pour vos utilisateurs finaux. Toutefois, cela n'a pas été un problème du tout pour mes utilisateurs, et ne deviennent de moins en moins de l'un à l'avenir.

11voto

Mark Rushakoff Points 97350

Cela pourrait être un avantage moindre, mais SQLite est beaucoup plus portable entre les plates-formes, depuis la Base de Données est une partie de Cacao, et SQLite est de la pure C. Cela signifie que si vous voulez porter votre application pour PC, par exemple, vous auriez moins de code à réécrire dans le cas où vous utilisez pur SQLite.

Alors si vous souhaitiez développer autre chose que de la croix-plate-forme de l'utilisation d'un local DB (pas nécessairement liées à des applications de l'iPhone), vous avez déjà une certaine expérience avec SQLite.

2voto

Pieter Jongsma Points 2299

Si vous voulez que votre application de fonctionner sur les iPhones pas en cours d'exécution OS 3.0, vous devrez utiliser SQLite.

Cependant, l'utilisation de CoreData (qui utilise SQLite comme backend, je crois) signifie que vous n'avez pas à écrire votre propre base de données d'interaction code qui est assez chiant à faire, surtout quand vous faites les relations, etc.

J'utilise CoreData moi-même...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X