Когда мое представление исчезает, я получаю следующее сообщение:
An instance 0x1c11e0 of class MKAnnotationView was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
(Контекст: 0x0, Свойство: 0x1e98d0>)
Код, который определяет и запускает обратное геокодирование:
geo=[[MKReverseGeocoder alloc] initWithCoordinate:droppedAt];
geo.delegate=self;
[geo start];
Я пытался установить для geo.delegate значение nil прямо перед тем, как я отклонил представление.Это было бы слишком просто.Я также пытался:
for (id <MKAnnotation> annotation in mvMap.annotations) {
[[mvMap viewForAnnotation:annotation] removeObserver:self forKeyPath:@"selected"];
}
, который выдает ошибку, которая говорит:
* Завершение приложения из-за необработанного исключения «NSRangeException», причина: «Невозможно удалитьНаблюдатель для ключевого пути "выбран" из-за того, что он не зарегистрирован в качестве наблюдателя.
Мой вид кода аннотации такой:
-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
MKAnnotationView *aView;
aView=(MKAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier:annotation.title];
if (aView==nil)
aView=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotation.title] autorelease];
else
aView.annotation=annotation;
[aView setImage:[UIImage imageNamed:selIcon]];
aView.canShowCallout=TRUE;
aView.draggable=YES;
return aView;
}
Я вроде нажимаю кнопки и переключаю переключателиздесь, пока крутится. Есть идеи, что я могу здесь сделать?