【问题标题】:Best Cocoa/Objective-C Wrapper Library for SQLite on iPhone [closed]iPhone 上 SQLite 的最佳 Cocoa/Objective-C 包装器库 [关闭]
【发布时间】:2010-10-13 01:22:01
【问题描述】:

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

谢谢

【问题讨论】:

  • 核心。数据。每一个。时间。
  • 目前Coredata是最好的选择。

标签: iphone objective-c cocoa-touch sqlite


【解决方案1】:

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

【讨论】:

【解决方案2】:

我找到的最简单的就是这个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"];

【讨论】:

  • 好的,这看起来很棒。为什么没有选票?嗯,FMDB vs SQLiteManager4iOS ...
  • 不知道,我不认为这个被广泛使用。我都试过了,我绝对更喜欢后者。
  • 想象一下一个有 10000 行和 10 列的表格会发生什么,每个表格有 255 个字符......
  • @Christoph 如果您甚至可以想出一个需要一次获取 10000 行而不进行过滤的情况,我不明白您为什么要诚实地寻找一个简单的 SQLite 包装器...
  • @Accatyyc 我不太明白你的评论。我一直在寻找 SQLite 包装器——我总是会选择 CoreData。但我确信加载 10000 行 10 列 255 字节会导致 24MB 内存块迟早会爆炸。大量项目(联系人、图像等)是 QA 最喜欢的测试用例,而且它总是会爆炸。这就是我发表评论的原因;该解决方案还没有准备好。
【解决方案3】:

我也是 FMDatabase 的粉丝,尽管我不得不定制我自己的版本。我的应用程序使用我编写的名为 ArchDBObject 的层,它透明地将对象与数据库表示进行转换;我正在考虑以某种形式发布它,但我还没有真正决定如何发布。

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

【讨论】:

【解决方案4】:

FMDB 很不错,因为它是无需处理 C 调用和类型转换的最简单的方法,同时仍让您可以完全访问 SQL。

我通常不喜欢对象关系包装器的一点是,您与正在生成的 SQL 距离太远,而这会导致性能开始受到影响。

【讨论】:

    【解决方案5】:

    过去几个小时我都在研究这些选项——这些选项还没有投入生产,所以 YMMV。

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

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

    我不知道它是否有正式名称。它只是 1 个类,它抽象了 SQLite api 的讨厌,同时保留了直接使用 SQL 的价值。假设您已经了解 SQL,学习曲线是 5 分钟。由于它是如此之小,我可以想象它很容易修复任何可能出现问题的地方。

    【讨论】:

    • 该 URL 似乎不再有效...
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-26
        • 2012-05-12
        • 2013-01-09
        • 1970-01-01
        • 1970-01-01
        • 2010-10-15
        • 1970-01-01
        • 2010-09-10
        相关资源
        最近更新 更多