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

时间:2009-03-12 23:30:22

标签: iphone objective-c cocoa-touch sqlite

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

由于

7 个答案:

答案 0 :(得分:48)

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

答案 1 :(得分:12)

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

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

答案 2 :(得分:12)

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

Ester Sanchez的SQLiteManager。

使用它基本上是这样的:

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

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

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

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

答案 3 :(得分:7)

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

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

答案 4 :(得分:1)

我花了最后几个小时看看这些选项 - 尚未投入生产,所以YMMV。

我找到的最轻的包装纸在这里:

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

我不知道它是否有官方名称。它只是一个类,它抽象了SQLite api的肮脏,同时保留了直接使用SQL的价值。学习曲线是5分钟,假设您已经知道SQL。由于它太小,我可以想象很容易修复任何可能出错的东西。

答案 5 :(得分:1)

如果需要,您还可以查看以下存储库,该存储库提供了一组可用于创建SQL语句的类,并提供了一种处理SQLite数据库连接的简单方法。它位于https://github.com/ziminji/objective-c-sql-query-builder

答案 6 :(得分:0)

我在FDBM上有一个简单的ORM http://code.google.com/p/chibiorm/

有了它,您可以根据需要使用原始SQL,将任何SQL作为dict列表返回,或使用漂亮的OO样式。