2009-08-23 15 views
47

Dado que CoreData está disponible para iPhone en OS 3.0, ¿debe ser la respuesta a la persistencia de los datos y reemplazar toda necesidad de SQLite directo?¿Usa CoreData o SQLite en iPhone?

¿Qué razones existen para seguir usando SQLite? ¿Cuáles son las ventajas/desventajas de SQLite frente a CoreData?

Respuesta

59

Esta es una pregunta común aquí:

En resumen, la base de datos puede simplificar en gran medida su código, en particular para el complejo modelos de objetos. Obtienes soporte para deshacer/rehacer casi gratis con él. También proporciona algunos muy significativos performance benefits, particularmente en el iPhone. A pesar de que parece contradictorio, dada la cantidad de sobrecarga que uno pensaría que tiene el marco, en la mayoría de los casos puede superar el rendimiento del SQLite ajustado a mano mediante Core Data. En el iPhone, hace un gran trabajo de obtención de lotes para minimizar el uso de memoria.

El único inconveniente, como se señaló, es que esto lo limita al requerir iPhone OS 3.0 para sus usuarios finales. Sin embargo, esto no ha sido un problema para mis usuarios, y solo será menos de uno en el futuro.

+0

Es extraño que estos no aparecieran en mi búsqueda. Tal vez mi búsqueda de "coredata" marcó la diferencia. ¿Debería eliminarse esta publicación? – Hauke

2

Si desea que su aplicación se ejecute en iPhones que no ejecutan OS 3.0, tendrá que usar SQLite.

Sin embargo, el uso de CoreData (que utiliza SQLite como servidor, creo) significa que no tiene que escribir su propio código de interacción con la base de datos, lo cual es bastante complicado, especialmente cuando está haciendo relaciones, etc.

utilizo CoreData mismo ...

11

Esto podría ser un beneficio menor, pero SQLite es mucho mayor portabilidad entre plataformas, desde datos básicos es parte de cacao, y SQLite es pura C. Esto significa que si quería portar su aplicación a la PC, por ejemplo, tendría menos código para reescribir en el caso de que use SQLite puro.

Luego, si desea desarrollar algo más multiplataforma utilizando un DB local (no necesariamente relacionado con ninguna aplicación de iPhone), ya tendría experiencia con SQLite.

+2

Esto es lo que me gusta de él ... Tengo una aplicación de iPhone que me estoy moviendo a Android, y las estructuras de datos son una cosa de la que no tengo que preocuparme en mi aprendizaje. – AndyD273

Cuestiones relacionadas