用于iPhone的Xcode SQLite扩展

用于iPhone的Xcode SQLite扩展,xcode,sqlite,Xcode,Sqlite,我希望在我的应用程序中使用SQLite扩展,除了SpatiaLite,我找不到任何其他使用扩展的示例。下面的帖子有一些建议,但并没有让我变得更聪明: 我尝试加载的扩展是: 我已编译了上述扩展,但当然我不能将其包含在我的应用程序中,以用于以下用途: SELECT load_extension('extension.sqlext'); 有人能告诉我如何: 1) 编译sqlite以包含我的扩展 2) 使用sqlite_auto_扩展包含我的扩展 编辑:我的项目中包含了sqlite合并和上述源文件,我

我希望在我的应用程序中使用SQLite扩展,除了SpatiaLite,我找不到任何其他使用扩展的示例。下面的帖子有一些建议,但并没有让我变得更聪明:

我尝试加载的扩展是:

我已编译了上述扩展,但当然我不能将其包含在我的应用程序中,以用于以下用途:

SELECT load_extension('extension.sqlext');
有人能告诉我如何:

1) 编译sqlite以包含我的扩展

2) 使用sqlite_auto_扩展包含我的扩展


编辑:我的项目中包含了sqlite合并和上述源文件,我只需要一个示例,说明如何使用sqlite_auto_扩展名与上述扩展名一起使用,以及在何处调用此扩展名。

实际上,似乎您无法在iOS项目中使用动态库。 但是,在您的特定情况下,您可以获取该模块的源代码,将它们添加到project中(只有一个文件),并在:int sqlite3_extension_init()中更改一些代码 只调用sqlite3_create_函数(db,“levenshtein”,2,SQLITE_ANY,0,levenFunc,0,0);
打开数据库后再调用。

我以为我不能在项目中使用预编译的二进制文件?我还收到了以下消息:2011-06-08 18:20:10.434 SQL[2841:207]***由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“创建详细视图语句时出错。”没有这样的函数:load_extension“”…这可能意味着我可能必须使用load_extension函数编译sqlite。无论如何,您都可以从sqlite站点获取源文件(如果内存可用,则称为sqlite合并,其中所有内容都放在一个文件中),而不是使用iOS SDK中的源文件。还有,为什么不在您的项目文件夹中包含已编译的库呢?应该没问题。是的,我已经试过了,我现在正在使用sqlite合并。虽然我现在没有收到错误,但这不起作用:NSString*levenshtein=[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@“levenshtein.sqlext”];const char*sql=[[NSString alloc]initWithFormat:@“选择加载扩展名('%@');从表名中选择*,levenshtein]UTF8String];-当我编译我正在使用的扩展时:gcc-m32-bundle-fPIC-Isqlite3-o levenshtein.sqlext levenshtein.c这是适用于iPhone的正确架构吗?嗯。看来我的假设是错误的。请查看完全重写的答案。我仍然无法理解这一点,我已经加载了sqlite合并,包括我的levenshtein.c文件。现在我需要从某个地方调用sqlite3_auto_扩展名-我不知道在我的应用程序委托中执行此操作的文件是什么?以及我需要导入哪些文件。