2009-03-12 7 views
52

Estoy desarrollando para el iPhone y estoy buscando una buena biblioteca Cocoa/Objective-C para trabajar con SQLite. No quiero usar la API estándar de SQLite C procedimental. Veo opciones en sqlite.org en la sección Objective-C, pero no estoy seguro de cuál es la mejor en términos de diseño, estabilidad y funcionalidad de la API de la biblioteca. Me gustaría utilizar algo que se está desarrollando activamente y que, con suerte, estará disponible por un tiempo. ¿Alguien tiene sugerencias basadas en la experiencia con uno?Best Cocoa/Objective-C Wrapper Library para SQLite en iPhone

Gracias

+1

Core. Datos. Cada. Hora. –

+0

actualmente Coredata es la mejor opción. –

Respuesta

48

Yo personalmente uso FMDB, y la última actualización si fuera ayer.

+1

un enlace sería bueno :) –

+2

https://github.com/ccgus/fmdb –

12

También soy un fan de FMDatabase, aunque he tenido que personalizar mi propia versión. Mis aplicaciones usan una capa a su alrededor que escribí llamada ArchDBObject que convierte de forma transparente los objetos hacia y desde una representación de base de datos; Estoy pensando en liberarlo de alguna forma, pero aún no he decidido cómo.

En cualquier caso, FMDatabase se puede tener al https://github.com/ccgus/fmdb.

+1

+1 para dar un enlace –

+3

El proyecto se ha movido a aquí: https://github.com/ccgus/ –

7

FMDB es agradable porque es el camino más claro al no tener que lidiar con las llamadas y conversiones de tipo C, tiempo que le da acceso completo al SQL.

La cosa lo general no me gusta de envolturas objeto-relacional es que se llega demasiado distante del SQL que se genera y es entonces cuando el rendimiento puede empezar a sufrir.

0

Tengo un ORM sencilla en la parte superior de FDBM aquí http://code.google.com/p/chibiorm/.

Con él, usted puede utilizar SQL prima cuando se desea, devolver cualquier SQL como una lista dict, o utilizar el estilo OO agradable.

1

Pasé las últimas horas mirando las opciones - todavía no he estado en producción con ninguno de estos, así que YMMV.

La envoltura de peso más ligero que encontré fue aquí:

http://th30z.netsons.org/2008/11/objective-c-sqlite-wrapper/

No sé si tiene un nombre oficial. Es solo 1 clase, y abstrae la maldad de la API de SQLite, mientras deja el valor de trabajar directamente con SQL. La curva de aprendizaje es de 5 minutos, suponiendo que ya conoces SQL. Dado que es tan pequeño, puedo imaginar que sería fácil arreglar cualquier cosa que pueda salir mal.

+6

La URL ya no parece funcionar ... –

1

Si lo desea, también puede echar un vistazo a la siguiente repositorio que proporciona un conjunto de clases que se pueden utilizar para crear las sentencias SQL y proporciona una manera sencilla de manejar una conexión de base de datos SQLite. Se encuentra en https://github.com/ziminji/objective-c-sql-query-builder

12

La más sencilla que he encontrado es ésta https://github.com/misato/SQLiteManager4iOS

SQLiteManager por Ester Sánchez.

Su uso es básicamente lo siguiente:

NSArray *results = [dbManager getRowsForQuery:@"SELECT * FROM table WHERE id = 1"]; 

results es una matriz que contiene los diccionarios. Cada diccionario es una sola fila devuelta donde las claves son los nombres de cada columna en la tabla.

Después de que se pueden hacer cosas como esta:

NSDictionary *aPerson = [results objectAtIndex:0]; 
NSString *firstName = aPerson[@"firstName"]; 
NSString *email = aPerson[@"email"]; 
+0

Ok, bueno esto se ve increíble. ¿Por qué no hay votos? Hmmm, FMDB contra SQLiteManager4iOS ... – conor

+0

No tengo idea, no creo que este sea ampliamente utilizado. Los probé a los dos y definitivamente prefiero el último. – Accatyyc

+2

Imagínese lo que sucede con una tabla con 10000 filas y 10 columnas con 255 caracteres de texto cada una .... – Christoph