Melhor biblioteca de wrappers Cocoa / Objective-C para SQLite no iPhone

Estou desenvolvendo para o iPhone e estou procurando uma boa biblioteca Cocoa / Objective-C para trabalhar com o SQLite. Eu não quero usar o SQLite C API procedural padrão. Eu vejo opções em sqlite.org sob a seção Objective-C, mas não tenho certeza qual é o melhor em termos de design, estabilidade e funcionalidade da API de biblioteca. Eu gostaria de usar algo que está sendo desenvolvido ativamente e esperançosamente estará por aí por um tempo. Alguém tem sugestões baseadas na experiência usando um?

obrigado

Eu pessoalmente uso o FMDB , e a última atualização foi ontem.

O mais simples que eu encontrei é este https://github.com/misato/SQLiteManager4iOS

SQLiteManager por Ester Sanchez.

Usá-lo é basicamente assim:

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

results é um array contendo dictionarys. Cada dictionary é uma única linha retornada, onde as chaves são os nomes de cada coluna na tabela.

Depois disso, você pode fazer coisas como esta:

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

Eu também sou fã do FMDatabase, embora eu tenha que customizar minha própria versão dele. Meus aplicativos usam uma camada em torno dele que eu escrevi chamado ArchDBObject que transparentemente converte objects para e de uma representação de database; Estou pensando em lançá-lo de alguma forma, mas ainda não decidi como.

Em qualquer caso, o FMDatabase pode ser acessado em https://github.com/ccgus/fmdb .

O FMDB é legal porque é a maneira mais leve de não ter que lidar com as chamadas C e digitar conversões, enquanto ainda dá access total ao SQL.

A coisa que geralmente não gosto em wrappers relacionais de objects é que você fica muito distante do SQL sendo gerado e é aí que o desempenho pode começar a sofrer.

Passei as últimas horas observando as opções – ainda não estive em produção com nenhuma delas, então YMMV.

O invólucro de peso mais leve que encontrei estava aqui:

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

Não sei se tem um nome oficial. É apenas uma class, e abstrai a maldade da API do SQLite, enquanto deixa o valor de trabalhar diretamente com o SQL. A curva de aprendizado é de 5 minutos, supondo que você já saiba SQL. Como é tão pequeno, posso imaginar que seria fácil consertar qualquer coisa que pudesse dar errado com isso.

Se desejar, você também pode dar uma olhada no repository a seguir, que fornece um conjunto de classs que podem ser usadas para criar instruções SQL e fornece uma maneira simples de manipular uma conexão de database SQLite. Está localizado em https://github.com/ziminji/objective-c-sql-query-builder

Eu tenho um simples ORM em cima do FDBM aqui http://code.google.com/p/chibiorm/ .

Com ele, você pode usar o SQL bruto quando desejar, retornar qualquer SQL como uma lista de registro ou usar o estilo OO.