Я довольно новичок в Objective-C (и в самой C), так что это, вероятно, действительно просто, но я немного застрял.
У меня есть контроллер представления, который требует некоторого ввода от пользователя, у меня есть представление таблицы, в котором есть строка для значения широты и долготы. Когда пользователь касается этой строки, он переносит их в новый контроллер представления с представлением карты на нем.
У меня есть маркер для их перетаскивания и определения их местоположения:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState
В этом методе я хочу обновить предыдущий контроллер представления новыми координатами.
Имеет свойство:
CLLocationCoordinate2D destinationCoordinates;
который я установил как неатомный, присваивать и синтезировать
Мой код делает это:
NSArray *allControllers = self.navigationController.viewControllers;
EnterDetailsViewController *parent = [allControllers objectAtIndex:([allControllers count] -2)];
if ([parent isKindOfClass:[EnterDetailsViewController class]])
{
CLLocationCoordinate2D theCoordinate;
theCoordinate.latitude = annotation.coordinate.latitude;
theCoordinate.longitude = annotation.coordinate.longitude;
parent.destinationCoordinates = theCoordinate;
NSLog(@"Set coord to %@ - %@",
parent.destinationCoordinates.latitude,
parent.destinationCoordinates.latitude);
Но NSLog
всегда падает с EXC_BAD_ACCESS
- почему это так? Какую основную концепцию я здесь неправильно понимаю?