2009-03-12 20 views
52

Sto sviluppando per l'iPhone e sto cercando una buona libreria Cocoa/Objective-C per lavorare con SQLite. Non voglio utilizzare l'API procedurale SQLite C standard. Vedo le opzioni a sqlite.org nella sezione Objective-C, ma non sono sicuro quale sia il migliore in termini di design, stabilità e funzionalità dell'API della libreria. Mi piacerebbe usare qualcosa che si sta attivamente sviluppando e spero che sarà in giro per un po '. Qualcuno ha suggerimenti basati sull'esperienza con l'utilizzo di uno?Migliore libreria wrapper Cocoa/Objective-C per SQLite su iPhone

Grazie

+1

Nucleo. Dati. Ogni. Tempo. –

+0

attualmente Coredata è l'opzione migliore. –

risposta

48

Io personalmente uso FMDB, e l'ultimo aggiornamento per se fosse ieri.

+1

un collegamento sarebbe buono :) –

+2

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

12

Sono anche un fan di FMDatabase, anche se ho dovuto personalizzare la mia versione di esso. Le mie app usano un livello attorno ad esso che ho scritto chiamato ArchDBObject che converte in modo trasparente gli oggetti da e verso una rappresentazione di database; Sto pensando di rilasciarlo in qualche modo, ma non ho ancora deciso come ancora.

In ogni caso, FMDatabase può essere trovato a https://github.com/ccgus/fmdb.

+1

+1 per dare un collegamento –

+3

Il progetto è stato spostato qui: https://github.com/ccgus/fmdb –

7

FMDB è bello perché è il modo più leggero per non dover gestire le chiamate C e digitare conversioni, pur continuando a fornire l'accesso completo a SQL.

La cosa che generalmente non mi piace dei wrapper object-relational è che ci si allontana troppo dall'SQL generato e in quel momento le prestazioni possono iniziare a risentirne.

0

Ho un ORM semplice sopra FDBM qui http://code.google.com/p/chibiorm/.

Con esso, è possibile utilizzare SQL raw quando lo si desidera, restituire qualsiasi SQL come elenco di dettati o utilizzare lo stile OO piacevole.

1

Ho passato le ultime ore a guardare le opzioni - non sono ancora stato in produzione con nessuno di questi, quindi YMMV.

L'involucro leggero peso ho trovato è stato qui:

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

Non so se ha un nome ufficiale. È solo una classe e astrae la cattiveria dell'API di SQLite, lasciando il valore di lavorare direttamente con SQL. La curva di apprendimento è di 5 minuti, presupponendo che tu conosca già SQL. Dal momento che è così piccolo, posso immaginare che sarebbe facile risolvere tutto ciò che potrebbe andare storto.

+6

L'URL non è più sembra funzionare ... –

1

Se lo si desidera, è inoltre possibile dare un'occhiata al seguente repository che fornisce un set di classi che possono essere utilizzate per creare istruzioni SQL e fornisce un modo semplice per gestire una connessione al database SQLite. Si trova a https://github.com/ziminji/objective-c-sql-query-builder

12

Il più semplice che ho trovato è questo uno https://github.com/misato/SQLiteManager4iOS

SQLiteManager da Ester Sanchez.

Con esso è sostanzialmente in questo:

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

results è una matrice contenente dizionari. Ogni dizionario è una singola riga restituita in cui le chiavi sono i nomi di ciascuna colonna nella tabella.

Dopo di che si possono fare cose come questa:

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

Ok, beh, questo sembra fantastico. Perché non ci sono voti? Hmmm, FMDB vs SQLiteManager4iOS ... – conor

+0

Nessuna idea, non penso che questo sia ampiamente utilizzato. Li ho provati entrambi e sicuramente preferisco quest'ultimo. – Accatyyc

+2

Immaginate cosa succede per una tabella con 10000 righe e 10 colonne con 255 caratteri di testo ciascuna .... – Christoph

Problemi correlati