【问题标题】:Updating sqlite3 API更新 sqlite3 API
【发布时间】:2010-09-21 12:42:16
【问题描述】:

我想将 Sqlite3 的标准 Leopard 安装更新/升级到 >3.5 以使用 Cocoa 项目中的新 sqlite_xxx_v2 方法。

我似乎找不到任何有关如何执行此操作的信息。有没有人有任何提示或概述更新过程的网站。

iPhone 也支持 3.5+。我知道它是嵌入式的,所以应该不是问题......

【问题讨论】:

  • 请停止编辑标签。我知道它应该是 Objective-C,但这里流行的标签是 Objectivec。

标签: objective-c cocoa sqlite


【解决方案1】:

您要做的是从http://sqlite.org/download.html 获取合并源。然后只需将其编译到/添加到您的项目中。您不想替换系统 sqlite——这会在其他应用程序中产生意想不到的后果。另外,我很确定系统 sqlite 不是股票 sqlite...Apple 可能已经对它进行了自己的修改,核心数据依赖它。

您可以在此处阅读合并内容:http://sqlite.org/amalgamation.html,但简而言之:'''合并是一个名为“sqlite3.c”的单个 C 代码文件,其中包含核心 SQLite 库的所有 C 代码以及 FTS3 和 RTREE 扩展'''

我还建议不要直接使用 sqlite 调用,它们的设计目的不是那样(sqlite 的作者说)。相反,有许多可可包装器,包括 fmdb:http://code.google.com/p/flycode/source/browse/trunk/fmdb/(我写的):)

-gus

【讨论】:

    【解决方案2】:

    您并不想在 Mac OS X 上升级 SQLite 的系统版本。原因是所有 Mac OS X 软件都符合它所包含的软件包的版本,这是由 Apple 的构建过程构建的。安装不同版本的包,或者甚至自己构建相同的版本,但这样做与 Apple 的做法略有不同,可能会导致系统出现意外行为。

    最后,如果您将更新版本的 SQLite(或 Mac OS X 中包含的任何开源库或框架)嵌入到您自己的应用程序中,您应该确保从 Apple 的公共源站点集成 Darwin 更改。这样,您就可以确保从您自己构建的库中尽可能接近与 Apple 发布的版本相同的行为,这对于数据库中的文件锁定等功能尤其重要。

    【讨论】:

      【解决方案3】:

      我不相信我已经更新了我的版本,但它目前是 3.4.2,我可以在当前版本中使用新方法。

      我正在使用最新的(公共)iPhone SDK 运行 10.5.5。

      【讨论】:

        【解决方案4】:

        将库放入您的项目并从那里链接可能会更容易。

        【讨论】:

          猜你喜欢
          • 2015-07-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-24
          • 2011-02-22
          • 2020-08-25
          • 2013-12-09
          • 2018-06-13
          • 2018-04-12
          相关资源
          最近更新 更多