2009-10-19 19 views
6

Al momento ho un'app che mostra vari pin su una mappa. Ho provato a installare mapView.showsUserLocation = YES; per mostrare pos corrente dell'utente, tuttavia questo è schiantato la mia app ("Programma segnale ricevuto: SIGABRT") con il seguente messaggio di errore:Utilizzo della proprietà showUserLocation di 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: (...) 

Questo è un po 'di confusione in quanto non ho usato MKUserLocation, o è questo il problema?

L'app utilizza CoreLocation per altri scopi non correlati, tuttavia l'applicazione risponde nello stesso modo quando CoreLocation non viene già utilizzato.

Se qualcuno potesse aiutare sarebbe fantastico!

Grazie - James

+0

La mia correzione temporanea sta aggiungendo un nuovo pin e cambiando colore, ma sicuramente il pin Posizione corrente dovrebbe essere disponibile per l'uso? –

+0

Grazie per avermi fatto questa domanda. Finì per aiutare anche me! – Kenny

risposta

24

Assicurati di includere quanto segue in questo metodo:

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

Spero che hai già risolto questo ormai;)

+0

Hey grazie, non ho lavorato a questo progetto per un po ', ma ci riproverò più tardi stasera, grazie !! –

+0

Sì, questa era la soluzione, grazie! Speriamo che questo possa aiutare qualcun altro con lo stesso problema in futuro !! –

+0

Grazie, questo mi ha aiutato! – mservidio

1

Grazie per la risposta Berend la domanda e james.ingham per averlo chiesto! Ho cercato una soluzione per questo problema per mesi e questo thread lo ha risolto per me!

Il controllo per il tipo di pin MKUsLLocation sarebbe la cosa più logica da fare. Ma chi si ricorda di farlo quando implementa il metodo viewForAnnotation .. Anche se non si intende usare MKuserlocation nella propria app, sarebbe una pratica sicura fare sempre questo controllo per evitare di incorrere in problemi in futuro.

+1

Benvenuto nello stack overflow –