Comment peut-on mettre en pause l'ajout d'annotations en MKMapView est en mouvement ou anime. [IPhone SDK 3]

voix
0

J'ai un MKMapView et une autre classe a un fil en ajoutant des annotations au MKMapView.

Mais le problème est, MKMapView.annotations est nonatomic. Ainsi, alors que l'autre classe ajoute des annotations .... Il semble OK si l'utilisateur ne se déplace pas la zone visible de la carte. Mais si vous continuez à le déplacer, et l'autre classe a été l'ajout d'annotations à la carte à ce moment, application se bloque. Parce que le tableau a été muté au cours de la carte a été animant.

J'ai fait NSOperationQueue et ajouter chaque travail d'annotation ajoutant à la file d'attente.

Et puis à chaque fois que la région de la carte est modifiée, mettre en pause le NSOperationQueue .. et puis redémarrez-le lorsque le changement de région est fait.

Je pouvais me débarrasser de la plupart des accidents .. mais il est arrivé de temps en temps.

Une idée?

Créé 28/12/2009 à 11:46
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
3

Ne pas ajouter les annotations au MKMapView dans un thread d'arrière-plan. Laissez l'opération de retour d'un arrière-plan NSArray au thread principal, puis ajoutez le NSArray à la MKMapView synchrone. Je le fais tout le temps et il fonctionne.

Créé 28/12/2009 à 13:02
source utilisateur

voix
0

Toujours manipuler les commandes interface utilisateur sur le thread principal.

Créé 08/01/2010 à 21:18
source utilisateur

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