2009-10-19 4 views
6

habe ich eine App im Moment, die verschiedene Pins auf einer Karte zeigt. Ich habe versucht, mapView.showsUserLocation = YES; Einstellung des Benutzers aktuellen Pos zeigen jedoch abgestürzt dies meine app („Programmsignal empfangen: SIGABRT“) mit der folgenden Fehlermeldung:Mit der showUserLocation-Eigenschaft von MKMapView

Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: *** -[MKUserLocation counter]: unrecognized selector sent to instance 0x10ad60 
Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[MKUserLocation counter]: unrecognized selector sent to instance 0x10ad60' 
Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: Stack: (...) 

Dies ist ein wenig verwirrend ist, wie ich habe nicht verwendet MKUserLocation, oder ist das das Problem?

Die App verwendet CoreLocation für andere nicht verwandte Zwecke, die App reagiert jedoch auf die gleiche Weise, wenn CoreLocation nicht bereits verwendet wird.

Wenn jemand helfen könnte, wäre das toll!

Dank - James

+0

Mein temporärer Fix fügt einen neuen Pin hinzu und ändert seine Farbe, aber sicher sollte der Pin für die aktuelle Position verfügbar sein? –

+0

Vielen Dank für diese Frage. Es hat mir auch geholfen! – Kenny

Antwort

24

Seien Sie sicher, dass die folgenden in dieser Methode sind:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { 
    if ([annotation class] == MKUserLocation.class) { 
     return nil; 
    } 
    ... 
} 

ich dir jetzt schon fest hoffen habe;)

+0

Hey danke, ich habe eine Weile nicht an diesem Projekt gearbeitet, aber ich werde es später heute Abend versuchen, danke !! –

+0

Ja das war die Lösung, danke! Hoffentlich hilft das jemand anderem mit dem gleichen Problem in der Zukunft !! –

+0

Danke, das hat mir geholfen! – mservidio

1

Dank für die Beantwortung von Berend die Frage und James.ingham für die Frage! Ich habe seit Monaten nach einer Lösung für dieses Problem gesucht und dieser Thread hat es für mich repariert!

Die Suche nach dem Pintyp "MKUserLocation" wäre am logischsten. Aber wer erinnert sich, das zu tun, wenn Sie die Methode viewForAnnotation implementieren. Auch wenn Sie MKuserlocation nicht in Ihrer App verwenden, wäre es sicher, diese Überprüfung immer durchzuführen, um zukünftige Probleme zu vermeiden.

+1

Willkommen zum Stapelüberlauf –