-4

gpsによって検出された現在地から、場所がplistファイルにあるいくつかのレストランまでの距離を計算し、その距離をレストラン名のサブタイトルとしてリストビューに表示するプロジェクトを実行する必要があります。 。

私はについて知っていて、次のCLLocationDistance1つの関数を作成しました:-

-(double)distanceBetPoints
{
    CLLocation *user = [[CLLocation alloc] initWithLatitude:locationManager.location.coordinate.latitude longitude:locationManager.location.coordinate.longitude];
    CLLocationDistance distance = [user distanceFromLocation:restaurant.location];
    return distance;
}

ここで、ロケーションマネージャは私のロケーションを決定してrestaurant.locationおり、plistファイルのロケーションエントリです。

私はセル構成で次のように書いています:-

NSString *d = [NSString stringWithFormat:@"%@",[mapVC.distanceBetPoints]];
cell.detailTextLabel.text = [@"%@",[d]];

mapVCこれが距離計算のメソッドが存在するクラスのオブジェクトですmapVC。これらの行は両方とも、予期された識別子のエラーを示しています。

また、レストランごとに個別に計算してテーブルビューに表示するにはどうすればよいですか?値を配列などに格納する必要がありますか?はいの場合、メソッドをどこに配置し、どこに呼び出す必要があります。これにより、すべてのレストランで計算され、配列に格納されます。

4

1 に答える 1

0

うーん....これはあなたのエラーだと思います:

NSString *d = [NSString stringWithFormat:@"%@",[mapVC.distanceBetPoints]];
cell.detailTextLabel.text = [@"%@",[d]];

これではいけません:

NSString *d = [NSString stringWithFormat: @"%@", mapVC.distanceBetPoints];
cell.detailTextLabel.text = d;

よくわかりませんが、ここでの答えは非常に単純で明白であるため、この構文を見たことがなく、間違っていると思います。これほど多くの括弧とその書式設定を見たことはありません!

また、レストランごとに個別に計算してテーブルビューに表示するにはどうすればよいですか? 値を配列などに保存する必要がありますか? はいの場合、メソッドをどこに配置し、どこで呼び出して、すべてのレストランで計算され、配列に格納されるようにする必要があります..

それをローカル配列に保存し、メソッドを使用して (おそらく に入れる必要がありますviewDidLoad)、配列にレストランを入力します。あなたの plist は辞書の配列であると想定しています (各辞書はレストランです)。そうでない場合、レストランのリストは何ですか? 文字列の配列か何か?

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"MyPlistName" ofType:@"plist"];

restaurantArray = [[NSArray alloc] initWithContentsOfFile: plistPath];

于 2013-01-26T06:56:31.333 に答える