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」總是一個不同的註釋,而不是第二個數據庫結果。
在將地圖添加到地圖之前,我可以如何給某個註釋添加註釋,然後我可以使用它來選擇它們?
好吧,我已經添加了一個ID到註釋對象'(@property(nonatomic,retain)NSNumber * annotationid;)'我現在添加我的註釋,像這樣:MapViewAnnotation * newAnnotation = [[MapViewAnnotation alloc] initWithTitle:venuename和Coordinate:location andid:thisid];'所以他們有一個ID。但是這條線如何看待用「annotationid」23調用Annotation? 'id myAnnotation = [mapView.annotations objectAtIndex:0]; [mapView selectAnnotation:myAnnotation animated:NO];' –
user1104325
2012-02-21 06:35:15
你可以循環註解並找到你想要的ID。 'for(MapViewAnnotation *註解在mapView.annotations){if(annotation.id == 23);}' – ale84 2012-02-21 08:42:41
它做到了。非常感謝(: – user1104325 2012-02-21 09:40:39