2

所以经过一个小时的研究,我发现大多数人似乎都同意http://www.thissuchiknow.co.uk/?p=71上的函数是在 iPhone 中实现 Haversine 函数的方法当您有一个充满纬度和经度的数据库时,按距离排序结果的项目。不过,如何将它实际包含在您的项目中似乎没有什么帮助,而且我自己也没有运气。

无论我将函数添加到 ViewController.m 文件的哪个位置,我都会收到错误消息expected ')' before '*' token。有些人提到你需要放入static void distanceFunc(sqlite3_context *context, int argc, sqlite3_value **argv);你的 .h 文件,但我也有同样的错误。

谁能提供一个在 iPhone 项目中包含此功能的简短示例?

4

3 回答 3

0

你可以用这个,

+(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;

尝试更新一个。

谢谢,

于 2011-04-13T15:48:18.600 回答
0

.m将代码插入您在文件中任何位置提供的链接中应该没有问题。如果您在函数定义行收到错误,则编译器很可能不知道 ansqlite3_context是什么。这意味着您没有sqlite3.h在 .m 文件中包含标头。

于 2011-04-13T16:46:09.647 回答
0

好的,所以我的问题是不使用#import <sqlite3.h>和不将libsqlite3.0.dylib框架添加到我的项目中。至于从http://www.thissuchiknow.co.uk/?p=71放置函数的位置,我把它放在我的#import标签之间和@synthesize我的控制器.m文件中,就像它在博客文章中一样。

于 2011-04-14T21:06:31.973 回答