Probleem bij het verplaatsen van MKPinAnnotation op iPhone kaart

stemmen
3

Ik ben het bouwen van een app die locatie van de gebruiker tracks op de kaart. Ik kan een pin gemakkelijk opnemen, maar wanneer de locatie wordt gewijzigd, de app afgesloten.

Ik heb de standaard coördinaten ingesteld op 0,0 in viewDidLoad: Werkwijze en ik heb een pen aldaar toegevoegd. Ik heb dit gedaan omdat ik wil de pin te verwijderen wanneer de locatie wordt bijgewerkt en vervolgens de pen weer op nieuwe locatie.

Hier is de code die ik heb geschreven - (void) locationManager: didUpdateToLocation: fromLocation: methode.

 [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];  

Hier, myannotation is de pen die ik wil toevoegen, newLocation is de bijgewerkte locatie en CSMapAnnotation zal annotatie uitzicht terugkeren.

Het probleem is mijn app crasht everytime. Ik was in staat om waarschuwingsbericht op de console voor de crash. Hier is de boodschap:

Een instantie 0x182020 van de klasse CSMapAnnotation wordt deallocated terwijl belangrijke waarde waarnemers nog steeds mee worden geregistreerd. Observation informatie wordt gelekt, en kan zelfs worden ten onrechte gekoppeld aan een ander object.

Dus, plz help als iedereen het zelfde probleem onder ogen heeft gezien ...

De vraag is gesteld op 10/08/2009 om 12:00
bron van user
In andere talen...                            


3 antwoorden

stemmen
1

Een paar dingen om op te letten:

  • MKMapView heeft al een showsUserLocationattribuut dat de locatie van de gebruiker tracks voor u met de pulserende blauwe stip ding. Wilt u apart instellen van een pin op die locatie, kun je het krijgen userLocationattribuut uit de MapView.

  • De crash-probleem zou kunnen zijn als gevolg van de autoreleaseoproep. Gemakkelijkste manier om het probleem te verhelpen is om myannotationeen woning met een retainattribuut, haal vervolgens de automatische vrijgave en in plaats van myannotationgebruik self.myannotation.

  • Niet echt duidelijk wat je bedoelt door het instellen van "default coördineert op 0, 0" Als deze lat / longs dan ben je zetten een pin in Greenwich, Engeland :-) Je hoeft niet echt nodig om voortdurend toevoegen en verwijderen van annotaties. U kunt toevoegen ze een keer dan is hun positie aan te passen als dat nodig is.

antwoordde op 10/08/2009 om 19:53
bron van user

stemmen
0

Ik ervoer net hetzelfde probleem en het had iets te maken met de coördinaten van de annotatie. Ik was al het negeren van 0,0, maar om wat voor reden gebruikers werd het invoeren van -180, -180 (misschien van een apparaat waarop we konden bepalen de locatie?)

anyways - zodra ik begonnen met het negeren van -180, -180 het probleem ging weg. ik hoop dat dit helpt.

antwoordde op 07/05/2011 om 01:40
bron van user

stemmen
0

Ik denk dat het niet leuk vinden van je autorelease tag voor myannotation, wanneer u de annotatie toe te voegen aan de kaart is het misschien niet wordt behouden, en dan is het gewoon deallocates en crash, dat is wat ik kan bedenken uit te kijken naar de code die u op de hoogte. Hoop dat het helpt

antwoordde op 10/08/2009 om 14:21
bron van user

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