Πρόβλημα στη μετακίνηση MKPinAnnotation στο iPhone χάρτη

ψήφοι
3

Είμαι οικοδόμηση μια εφαρμογή που παρακολουθεί θέση του χρήστη στο χάρτη. Μπορώ να εισαγάγετε μια καρφίτσα εύκολα, αλλά όταν η θέση έχει αλλάξει, η εφαρμογή κλείνει.

Έχω ορίσετε τις προεπιλεγμένες συντεταγμένες στο 0,0 με viewDidLoad: μέθοδος και έχω προσθέσει μια καρφίτσα σε αυτή τη θέση. Έχω κάνει αυτό γιατί θέλω να αφαιρέσει την περόνη όταν θέσης ενημερώνεται και, στη συνέχεια, τοποθετήστε και πάλι την καρφίτσα σε νέα θέση.

Εδώ είναι ο κώδικας που έχω γράψει στο - (κενό) locationManager: didUpdateToLocation: fromLocation: μέθοδος.

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

Εδώ, myannotation είναι η καρφίτσα που θέλω να προσθέσω, newLocation είναι η ενημέρωση τοποθεσία και CSMapAnnotation θα επιστρέψει άποψη σχολιασμό.

Το πρόβλημα είναι η εφαρμογή μου κολλάει κάθε φορά. Ήμουν σε θέση να πάρετε προειδοποιητικό μήνυμα στην κονσόλα πριν από τη συντριβή. Εδώ είναι το μήνυμα:

«Ένα παράδειγμα 0x182020 της τάξης CSMapAnnotation γίνεται deallocated ενώ τα βασικά παρατηρητές αξία ακόμα καταχωρηθεί με αυτό. Πληροφορίες Παρατηρήσεων να διαρρεύσει, και μπορεί ακόμη και να γίνει λανθασμένα συνδέεται με κάποιο άλλο αντικείμενο.»

Έτσι, plz βοηθήσει αν κάποιος έχει αντιμετωπίσει το ίδιο πρόβλημα ...

Δημοσιεύθηκε 10/08/2009 στις 12:00
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
1

Λίγα πράγματα που πρέπει να προσέξετε:

  • MKMapView έχει ήδη ένα showsUserLocationχαρακτηριστικό που παρακολουθεί τη θέση του χρήστη για σας με το να πάλλεται μπλε κουκίδα πράγμα. Αν θέλετε να ορίσετε ξεχωριστά μια καρφίτσα σε αυτή τη θέση, μπορείτε να πάρετε το userLocationχαρακτηριστικό από το MapView.

  • Η συντριβή σφάλμα θα μπορούσε να είναι, λόγω της autoreleaseκλήσης. Ο ευκολότερος τρόπος για να το διορθώσετε είναι να κάνει myannotationένα ακίνητο με ένα retainχαρακτηριστικό, στη συνέχεια, αφαιρέστε το αυτόματης κυκλοφορίας και αντί της myannotationχρήσης self.myannotation.

  • Δεν είναι πραγματικά σαφές τι εννοείτε με τη ρύθμιση «προεπιλογή συντεταγμένες στο 0, 0.» Αν αυτά είναι τα lat / λαχταρά συνέχεια βάζετε μια καρφίτσα στο Γκρήνουιτς της Αγγλίας :-) Δεν πρέπει πραγματικά να προσθέσετε συνεχώς και να καταργήσετε σχολιασμούς. Μπορείτε να τα προσθέσετε μία φορά και στη συνέχεια ρυθμίστε τη θέση τους ανάλογα με τις ανάγκες.

Απαντήθηκε 10/08/2009 στις 19:53
πηγή χρήστη

ψήφοι
0

Απλά βιώσει αυτό το ίδιο πρόβλημα και ότι είχε κάτι να κάνει με τις συντεταγμένες του σχολιασμού. Ήμουν ήδη αγνοώντας 0,0, αλλά για κάποιο λόγο στους χρήστες την εισαγωγή -180, -180 (ίσως από μια συσκευή όπου θα μπορούσα να καθορίσει τη θέση;)

έτσι κι αλλιώς - μόλις άρχισα να αγνοεί -180, -180 το πρόβλημα πήγε μακριά. ελπίδα αυτό βοηθά.

Απαντήθηκε 07/05/2011 στις 01:40
πηγή χρήστη

ψήφοι
0

Σκέφτομαι ότι δεν αρέσει ετικέτα αυτόματης κυκλοφορίας για myannotation, όταν προσθέτετε το σχολιασμό στο χάρτη δεν μπορεί να συγκρατείται, και στη συνέχεια απλά αποδεσμεύει και συντριβή, αυτό είναι ό, τι μπορώ να σκεφτώ από την εξέταση τον κωδικό σας δημοσιεύτηκε. Η ελπίδα αυτό βοηθά

Απαντήθηκε 10/08/2009 στις 14:21
πηγή χρήστη

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