Довольно старый вопрос, но, может быть, кто-то еще сталкивается с той же проблемой (как я сделал):
Не добавляйте MKPlacemark к аннотациям карты; используйте вместо этого MKPointAnnotation. Этот класс имеет свойства заголовка и субтитров, которые не только для чтения. Когда вы устанавливаете их, аннотация на карте обновляется соответствующим образом - и это, вероятно, то, что вы хотите.
Чтобы использовать MKPointAnnotation в своем коде, замените выделенные строки и добавьте MKPlacemark следующим кодом:
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.coordinate = coordinate;
annotation.title = NSLocalizedString(@"Dropped Pin",
@"Title of a dropped pin in a map");
[mapView addAnnotation:annotation];
Вы также можете установить свойства заголовка и субтитров в любое время позже. Например, если у вас запущен асинхронный адресный запрос, вы можете установить субтитр на адрес аннотации, как только адрес станет доступен.