Problema nel muoversi MKPinAnnotation su iPhone mappa

voti
3

Sto costruendo un'applicazione che tiene traccia di posizione dell'utente sulla mappa. Posso inserire un perno facilmente, ma quando la posizione viene modificata, l'applicazione si chiude.

Ho impostato le coordinate predefinite per 0,0 in viewDidLoad: metodo e ho aggiunto un perno in quella posizione. L'ho fatto perché voglio togliere il perno in cui posizione viene aggiornata e quindi inserire di nuovo il perno sulla nuova posizione.

Ecco il codice che ho scritto in - (void) locationManager: didUpdateToLocation: fromLocation: metodo.

 [mapview removeAnnotation:myannotation]; 
 CLLocationCoordinate2D currentlocation;
 currentlocation.latitude=newLocation.coordinate.latitude;
 currentlocation.longitude=newLocation.coordinate.longitude;

 myannotation=[[[CSMapAnnotation alloc]initWithCoordinate:currentlocation annotationType:CSMapAnnotationTypeStart title:@My Location] autorelease];

 [mapview addAnnotation:myannotation];  

Qui, myannotation è il pin, che voglio aggiungere, newLocation è la posizione aggiornata e CSMapAnnotation tornerà vista annotazione.

Il problema è la mia app si blocca ogni volta. Sono stato in grado di ottenere messaggio di avviso sulla console prima di schiantarsi. Ecco il messaggio:

Un'istanza 0x182020 di classe CSMapAnnotation viene deallocato mentre gli osservatori valori chiave sono ancora registrati con esso. Informazioni di osservazione è trapelato, e può anche diventare erroneamente collegato a qualche altro oggetto.

Così, plz aiutare se qualcuno ha affrontato lo stesso problema ...

È pubblicato 10/08/2009 alle 12:00
fonte dall'utente
In altre lingue...                            


3 risposte

voti
1

Un paio di cose da guardare fuori per:

  • MKMapView ha già un showsUserLocationattributo che tiene traccia la posizione dell'utente per voi con il pulsante cosa blu-dot. Se si desidera impostare separatamente un perno su quella posizione, è possibile ottenere userLocationl'attributo dal mapview.

  • Il bug crash potrebbe essere a causa della autoreleasechiamata. Il modo più semplice per risolvere il problema è quello di fare myannotationuna proprietà con un retainattributo, quindi estrarre l'autorelease e, invece di myannotationutilizzo self.myannotation.

  • Non proprio chiaro cosa si intende per l'impostazione "le coordinate di default a 0, 0" Se questi sono lat / long allora si sta mettendo un perno a Greenwich, in Inghilterra :-) Non avete davvero bisogno di aggiungere e rimuovere continuamente annotazioni. È possibile aggiungere una volta quindi regolare la loro posizione, se necessario.

Risposto il 10/08/2009 a 19:53
fonte dall'utente

voti
0

Ho appena sperimentato questo stesso problema ed ha avuto qualcosa a che fare con le coordinate della annotazione. Ero già ignorando 0,0 ma per qualche ragione agli utilizzatori inserendo -180, -180 (forse da un dispositivo dove abbiamo potuto determinare la posizione?)

in ogni modo - non appena ho iniziato a ignorare -180, -180 il problema è andato via. spero che questo ti aiuti.

Risposto il 07/05/2011 a 01:40
fonte dall'utente

voti
0

Sto pensando che non è se piace il tag autorelease per myannotation, quando si aggiunge l'annotazione alla mappa potrebbe non essere essere mantenuto, e poi appena rilascia e crash, questo è quello che mi viene in mente di guardare il codice che avete inviato. Spero che sia d'aiuto

Risposto il 10/08/2009 a 14:21
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more