¿Usa CoreData o SQLite en iPhone?
ios core-data (3)
Dado que CoreData está disponible para iPhone en OS 3.0, ¿debe ser la respuesta a la persistencia de los datos y reemplazar todas las necesidades de SQLite
directo?
¿Qué razones existen para seguir usando SQLite
? ¿Cuáles son las ventajas / desventajas de SQLite
frente a CoreData
?
Esta es una pregunta común aquí:
- "Datos principales frente a SQLite para desarrolladores experimentados SQL"
- "Datos básicos frente a Sqlite y rendimiento ..."
- "Datos principales frente a sqlite3"
- "¿Vale la pena utilizar datos básicos para una aplicación sqlite simple en el iPhone con una sola tabla y sin relaciones o subtablas / vistas complicadas?"
En resumen, Core Data puede simplificar enormemente su código, particularmente para modelos de objetos complejos. Obtienes soporte para deshacer / rehacer casi gratis con él. También proporciona algunos beneficios de rendimiento muy importantes, especialmente 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.
La única desventaja, 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.
Esto podría ser un beneficio menor, pero SQLite es mucho más portátil entre las plataformas, ya que Core Data es parte de Cocoa, y SQLite es C. puro. Esto significa que si quiere portar su aplicación a la PC, por ejemplo, tendría menos código para reescribir en caso de que use SQLite puro.
Entonces, 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.
Si desea que su aplicación se ejecute en iPhones que no ejecutan OS 3.0, deberá usar SQLite.
Sin embargo, el uso de CoreData (que usa SQLite como un back-end, creo) significa que no tiene que escribir su propio código de interacción con la base de datos, que es bastante complicado de hacer, especialmente cuando está haciendo relaciones, etc.
Yo uso CoreData yo mismo ...