Ich versuche, eine ziemlich einfache benutzerdefinierte Anmerkungsansicht und Callout zu verwenden - die Anmerkungsansicht, wenn ich sie erstelle, fügt nur eine UIImageView als Unteransicht hinzu. Das funktioniert gut.MKMapKit-Ausnahme bei der Verwendung von canShowCallout in der Anmerkungsansicht
Wenn ich jedoch canShowCallout in der Anmerkungsansicht aufruft, wird sofort nach dem Zurückgeben der Ansicht eine Ausnahme in MapKit ausgelöst. Das Ende des Stapels wie folgt aussieht:
#0 0x94e964e6 in objc_exception_throw
#1 0x01e26404 in -[MKOverlayView _addViewForAnnotation:]
#2 0x01e22037 in -[MKOverlayView _addViewsForAnnotations:animated:]
#3 0x01e1ddf9 in -[MKOverlayView showAddedAnnotationsAnimated:]
#4 0x01df9c0e in -[MKMapView _showAddedAnnotationsAndRouteAnimated:]
#5 0x01e0371a in -[MKMapView levelView:didLoadTile:]
Mein viewForAnnotation ist ziemlich einfach:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if (! [annotation isKindOfClass:[MyAnnotation class]])
return nil;
MyAnnotationView *useView = (MyAnnotationView *)[myMapView dequeueReusableAnnotationViewWithIdentifier:@"resuseview"];
if (useView == nil)
{
useView = [[[MyAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"resuseview"] autorelease];
useView.canShowCallout = YES; // if commented out view appears just fine
}
else
{ useView.annotation = annotation; }
return useView;
}
Wie im Code angegeben, die Anmerkungsansicht funktioniert gut, ist - bis ich canShowCallout hinzufügen, dann stürzt Beim ersten Mal erhält die Karte die Ansicht.
danke Kendall –