Migliore libreria Wrapper Cocoa / Objective-C per SQLite su iPhone

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 su 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 triggersmente sviluppando e spero che sarà in giro per un po ‘. Qualcuno ha suggerimenti basati sull’esperienza con l’utilizzo di uno?

Grazie

Io personalmente uso FMDB , e l’ultimo aggiornamento ad esso era ieri.

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

SQLiteManager di Ester Sanchez.

Usarlo è fondamentalmente come questo:

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

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

Dopo di che puoi fare cose come questa:

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

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 su https://github.com/ccgus/fmdb .

FMDB è bello perché è il modo più leggero per non avere a che fare con 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 ti allontani troppo dall’SQL generato e in quel momento le prestazioni possono iniziare a risentirne.

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

L’involucro più leggero che ho trovato era qui:

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

Non so se ha un nome ufficiale. È solo una class 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.

Se lo desideri, puoi anche 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 all’indirizzo https://github.com/ziminji/objective-c-sql-query-builder

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

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