更新sqlite3 API

时间:2008-11-09 17:40:45

标签: objective-c cocoa sqlite

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

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

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

4 个答案:

答案 0 :(得分:8)

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

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

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

-GUS

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

将库放入项目并将其从那里链接起来可能会更容易。