1
私はSQLiteの結果をループして素晴らしい作品特定のアノテーション
マップ
while(sqlite3_step(statement) == SQLITE_ROW) {
double latitude = sqlite3_column_double(statement, 0);
double longitude = sqlite3_column_double(statement, 1);
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
CLLocationCoordinate2D location;
location.latitude = latitude;
location.longitude = longitude;
[point setCoordinate:(location)];
[point setTitle:venuename];
[point setSubtitle:@"hello"];
[mapView addAnnotation:point];
[point release];
}
に注釈を追加していますを選択します。今、私は3ND注釈を選択したいと言うことができます、私は
id<MKAnnotation> myAnnotation = [mapView.annotations objectAtIndex:2];
[mapView selectAnnotation:myAnnotation animated:NO];
を行うしかし、注釈がランダムな順序でマップに追加されているようだ、と私のループの順序に従っていません。つまり、 "objectAtIndex:2"は常に別のアノテーションであり、2番目のデータベース結果ではありません。
注釈をマップに追加する前にアノテーションに固有のIDを与える方法はありますか?
私は注釈オブジェクトにIDを追加しました。(@property(nonatomic、retain)NSNumber * annotationid;) 'このような注釈を追加します:' MapViewAnnotation * newAnnotation = [[MapViewAnnotation alloc] initWithTitle:venuename andCoordinate:location andid:thisid]; 'これはIDを持つためです。しかし、このラインはどのように見えなければならないでしょうか。 "annotationid" 23で注釈を呼び出しますか? 'id myAnnotation = [mapView.annotations objectAtIndex:0]; [mapView selectAnnotation:myAnnotation animated:NO]; ' –
user1104325
注釈を繰り返して、必要なIDを持つ注釈を見つけることができます。 'for(mapView.notationの注釈){if(annotation.id == 23);}' – ale84
でした。ありがとうたくさん(: – user1104325