适用于iPhone的SQLite最佳Cocoa/Objective-C包装库

pfe*_*lbr 53 sqlite iphone cocoa-touch objective-c

我正在为iPhone开发,我正在寻找一个好的Cocoa/Objective-C库来处理SQLite.我不想使用标准的过程SQLite C API.我在Objective-C部分的sqlite.org上看到了选项,但我不确定在库API设计,稳定性和功能方面哪个是最好的.我想使用一些积极开发的东西,希望能够存在一段时间.任何人都有基于经验的建议吗?

谢谢

小智 48

我个人使用FMDB,最后一次更新是昨天.

  • https://github.com/ccgus/fmdb (2认同)

Bre*_*don 12

我也是FMDatabase的粉丝,虽然我不得不自定义我自己的版本.我的应用程序在它周围使用了一个名为ArchDBObject的层,它透明地将对象转换为数据库表示形式; 我正在考虑以某种形式发布它,但我还没有真正决定如何.

无论如何,可以在https://github.com/ccgus/fmdb上获得FMDatabase .

  • 项目已移至此处:https://github.com/ccgus/fmdb (3认同)

Acc*_*yyc 12

我发现最简单的是这一个https://github.com/misato/SQLiteManager4iOS

SQLiteManager由Ester Sanchez撰写.

使用它基本上是这样的:

NSArray *results = [dbManager getRowsForQuery:@"SELECT * FROM table WHERE id = 1"];
Run Code Online (Sandbox Code Playgroud)

results是一个包含字典的数组.每个字典都是一个返回的行,其中键是表中每列的名称.

之后你可以做这样的事情:

NSDictionary *aPerson = [results objectAtIndex:0];
NSString *firstName = aPerson[@"firstName"];
NSString *email = aPerson[@"email"];
Run Code Online (Sandbox Code Playgroud)

  • 想象一下,对于一个包含10000行和10列,每行包含255个字符的表格会发生什么.... (2认同)

Ken*_*ner 7

FMDB很不错,因为它是最轻松的方式,无需处理C调用和类型转换,同时仍然可以完全访问SQL.

我通常不喜欢关于对象关系包装器的事情是你离生成的SQL太远了,而且当性能开始受损时.