Ниже приведен мой код для загрузки моих пользовательских аннотаций в массив, а затем добавление этого массива к моей карте с помощью addAnnotations. Я не получаю никаких контактов на моей карте. Если я заменил [annotations addObject:annotation];
[annotations addObject:item.placemark];
, я получаю контакты, но они не являются моими аннотациями. У меня есть класс customAnnotation, называемый Annotation. Что я делаю не так?Пользовательские аннотации не загружаются в массив?
NSMutableArray *annotations = [NSMutableArray array];
[response.mapItems enumerateObjectsUsingBlock:^(MKMapItem *item, NSUInteger idx, BOOL *stop) {
// if we already have an annotation for this MKMapItem,
// just return because you don't have to add it again
for (id<MKAnnotation>annotation in mapView.annotations)
{
if (annotation.coordinate.latitude == item.placemark.coordinate.latitude &&
annotation.coordinate.longitude == item.placemark.coordinate.longitude)
{
return;
}
}
// otherwise add it
Annotation *annotation = [[Annotation alloc] initWithPlacemark:item.placemark];
annotation.title = mapItem.name;
annotation.subtitle = mapItem.placemark.addressDictionary[(NSString *)kABPersonAddressStreetKey];
[annotations addObject:annotation];
[self.mapView addAnnotations:annotations];
Спасибо за ваш ответ и помогите мне сломать логику проблемы. – Cybernetic
hmmm. Ну, теперь я получаю странное поведение. Когда я внес изменения, я упомянул, что он исправляет проблему аннотации ... но теперь, когда я пытаюсь нажать мою кнопку назад (которая увольняет диспетчер представлений), мое приложение падает. Я получаю EXC_BAD_ACCESS (код = 2, адрес = 0x4). – Cybernetic
@ user1639594 Это, конечно, разочаровывает, но у нас этого недостаточно, чтобы диагностировать, что происходит. Я бы попытался включить [контрольные точки исключения] (http://developer.apple.com/library/mac/#recipes/xcode_help-breakpoint_navigator/articles/adding_an_exception_breakpoint.html) и посмотреть, помогает ли это идентифицировать код нарушения. Если нет, поместите свои собственные контрольные точки в свой код, а затем один шаг через подпрограммы кандидата и посмотрите, можете ли вы определить, какая строка вызывает проблему. Если худшее приходит к худшему, не стесняйтесь загружать проект где-нибудь, и я могу взглянуть. – Rob