Problem bei der Bewegung MKPinAnnotation auf iPhone Karte

stimmen
3

Ich baue eine Anwendung, die Benutzer-Standort auf der Karte verfolgt. Ich kann einen Stift leicht einfügen, aber wenn die Position geändert wird, beendet die App.

Verfahren, und ich habe einen Stift an dieser Stelle hinzugefügt: Ich habe die Standardkoordinaten auf 0,0 in viewDidLoad eingestellt. Ich habe dies getan, weil ich den Stift entfernen möge, wenn Standort aktualisiert wird, und dann den Stift einer wieder auf neue Position.

Hier ist der Code, den ich geschrieben habe in - (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 ist der Stift, den ich hinzufügen möchte, ist newLocation die aktualisierte Position und CSMapAnnotation wird Anmerkungsansicht zurückzukehren.

Das Problem ist meine app stürzt jedes Mal. Ich konnte Warnmeldung auf der Konsole bekommen vor dem Absturz. Hier ist die Botschaft:

„Eine Instanz der Klasse 0x182020 CSMapAnnotation wird freigegeben, während Schlüsselwert Beobachter noch mit ihm registriert sind. Observation Informationen durchgesickert werden, und kann sogar fälschlicherweise zu einem anderen Objekt angebracht werden.“

Also, plz helfen, wenn jemand das gleiche Problem konfrontiert ...

Veröffentlicht am 10/08/2009 um 12:00
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
1

Ein paar Dinge, wo sie nach:

  • MKMapView hat bereits ein showsUserLocationAttribut , das den Standort des Nutzers für Sie mit der pulsierenden Blaupunkt Sache verfolgt. Wenn Sie separat wollen an diesem Standort einen Stift setzen, können Sie das bekommen userLocationAttribut aus dem mapview.

  • Der Absturz Fehler könnte wegen der sein autoreleaseRuf. Der einfachste Weg , um es zu beheben ist , um myannotationeine Eigenschaft mit einem retainAttribut, dann die Autofreigabeherausnehmen und statt myannotationVerwendung self.myannotation.

  • Nicht wirklich klar, was Sie mit der Einstellung „Standardkoordinaten auf 0, 0“ Wenn diese lat / longs dann setzen sind Sie einen Stift in Greenwich, England :-) Sie nicht wirklich brauchen, um ständig hinzuzufügen und Anmerkungen zu entfernen. Sie können sie hinzufügen, sobald dann ihre Position nach Bedarf anpassen.

Beantwortet am 10/08/2009 um 19:53
quelle vom benutzer

stimmen
0

Ich erleben gerade das gleiche Problem und es hatte etwas mit den Koordinaten der Anmerkung zu tun. Ich war schon 0,0 ignoriert aber aus irgendeinem Grund Anwender wurden -180, -180 (vielleicht von einem Gerät, auf dem wir die Lage könnte nicht bestimmen?) Eingeben

sowieso - sobald ich -180 begann zu ignorieren, -180 das Problem ging weg. hoffe das hilft.

Beantwortet am 07/05/2011 um 01:40
quelle vom benutzer

stimmen
0

Ich denke es ist Ihr Autorelease-Tag für myannotation nicht zu mögen, wenn Sie die Anmerkung zu einer Karte hinzufügen könnte es nicht beibehalten werden, und dann ist es nur freigibt und Absturz, das ist, was ich von Blick auf den Code denken können Sie auf dem Laufenden. Ich hoffe es hilft

Beantwortet am 10/08/2009 um 14:21
quelle vom benutzer

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