在iPhone项目中为sqlite实现Haversine功能

问题描述

| 因此,经过一个小时的研究,我发现大多数人似乎都同意http://www.thismuchikNow.co.uk/?p=71上的函数是将haversine函数实现为当您的数据库中包含经度和纬度时,iPhone项目可按距离对结果进行排序。不过,实际上如何将其包含在您的项目中似乎几乎没有帮助,而且我也没有运气。 无论将函数添加到ViewController.m文件的哪个位置,都会出现错误
expected \')\' before \'*\' token
。有人提到您需要在您的.h文件添加
static void distanceFunc(sqlite3_context *context,int argc,sqlite3_value **argv);
,但是我在这里也遇到了同样的错误。 谁能提供在iPhone项目中包含此功能的简短示例?     

解决方法

你可以用这个
+(void)distanceFunc(sqlite3_context *context,int argc,sqlite3_value **argv);
或将viewController文件的.m扩展名更改为.mm。(也可以尝试使用此扩展名) 更新
+(void)distanceFunc:(sqlite3_context *)context arg1:(int)argc arg2:(sqlite3_value **)argv;
尝试更新一个。 谢谢,     ,将代码插入
.m
文件中任何位置的链接中应该没有问题。如果在函数定义行出现错误,则可能是编译器不知道ѭ5是什么。这意味着您没有在.m文件中包含
sqlite3.h
头。     ,好的,所以我的问题是没有使用
#import <sqlite3.h>
和没有在项目中添加
libsqlite3.0.dylib
框架的结合。至于从http://www.thismuchiknow.co.uk/?p=71放置函数的位置,我将其放在控制器的
.m
文件中的
#import
标签和
@synthesize
之间,就像在博客文章。