Come possiamo mettere in pausa, mentre l'aggiunta di annotazioni MKMapView sta animando o in movimento. [IPhone SDK 3]

voti
0

Ho un MKMapView e un'altra classe ha un filo di aggiungere annotazioni al MKMapView.

Ma il problema è, MKMapView.annotations è nonatomic. Così, mentre l'altra classe è l'aggiunta di annotazioni .... sembra ok se l'utente non si muovono zona visibile della mappa. Ma se continuare a muoversi, e l'altra classe è stata l'aggiunta di annotazioni alla mappa in quel momento, si blocca app. Perché la matrice è stato mutato durante mappa è stata l'animazione.

Ho fatto NSOperationQueue, e aggiungi ogni lavoro di annotazione aggiunta alla coda.

E poi ogni volta che regione della mappa viene modificata, mettere in pausa il NSOperationQueue .. e poi riavviarlo quando il cambiamento regione è fatto.

Ho potuto sbarazzarsi della maggior parte dei crash .. ma ancora è accaduto di tanto in tanto.

Qualche idea?

È pubblicato 28/12/2009 alle 11:46
fonte dall'utente
In altre lingue...                            


2 risposte

voti
3

Non aggiungere le annotazioni al MKMapView in un thread in background. Lasciate che l'operazione di sfondo restituire un NSArray indietro al thread principale, quindi aggiungere il NSArray al MKMapView sincrono. Lo faccio tutto il tempo e funziona.

Risposto il 28/12/2009 a 13:02
fonte dall'utente

voti
0

gestire sempre controlli UI sul thread principale.

Risposto il 08/01/2010 a 21:18
fonte dall'utente

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