Я перебираю результаты 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];
}
Прекрасно работает.Теперь, допустим, я хочу выбрать 3-ю аннотацию, я делаю
id<MKAnnotation> myAnnotation = [mapView.annotations objectAtIndex:2];
[mapView selectAnnotation:myAnnotation animated:NO];
Однако, похоже, аннотации добавляются на карту в случайном порядке, а не в соответствии с порядком моего цикла.Таким образом, «objectAtIndex: 2» - это всегда другая аннотация, а не второй результат базы данных.
Есть ли способ, как я могу дать аннотации какой-то уникальный идентификатор перед тем, как добавить их на карту, который затем я могу использовать для их выбора?