2

1 時間の調査の結果、 http: //www.thismuchiknow.co.uk/?p=71 の関数が iPhone に Haversine 関数を実装する方法であることにほとんどの人が同意しているように見えることがわかりました。緯度と経度でいっぱいのデータベースがある場合に、結果を距離で並べ替えるためのプロジェクト。ただし、実際にプロジェクトに含める方法についてはほとんど助けがないようで、私自身は運がありません。

関数を ViewController.m ファイルのどこに追加しても、エラーが発生しますexpected ')' before '*' tokenstatic 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。関数定義行でエラーが発生する場合は、コンパイラが an を認識していない可能性がsqlite3_contextあります。sqlite3.hこれは、.m ファイルにヘッダーが含まれていないことを意味します。

于 2011-04-13T16:46:09.647 に答える
0

わかりましたので、私の問題は、プロジェクトにフレームワークを使用#import <sqlite3.h>しないことと追加しないことの組み合わせでした。http://www.thismuchiknow.co.uk/?p=71libsqlite3.0.dylibから関数をどこに配置するかについては、ブログ投稿と同じように、タグとコントローラーのファイルに配置しました。#import@synthesize.m

于 2011-04-14T21:06:31.973 に答える