Ogni volta che provo a scaricare un grosso dietro file di UIScrollView
, MPMapView
o qualcosa del genere, il processo di download viene interrotto non appena mi tocco schermo di iPhone. Per fortuna, un fantastico post sul blog di Jörn suggerisce un'opzione alternativa, usando NSRunLoopCommonModes
per la connessione.
Questo mi fa esaminare in dettaglio le due modalità, NSDefaultRunLoopMode e NSRunLoopCommonModes, ma il documento Apple non spiega gentilmente, a parte il dire
NSDefaultRunLoopMode
La modalità per gestire sorgenti di input diverse dagli oggetti NSConnection. Questa è la modalità run-loop più comunemente usata.
NSRunLoopCommonModes
Gli oggetti aggiunti a un ciclo di esecuzione utilizzando questo valore come modalità sono monitorati da tutte le modalità di ciclo di esecuzione che sono state dichiarate come membri del set di modalità "comuni"; vedere la descrizione di CFRunLoopAddCommonMode per i dettagli.
CFRunLoopAddCommonMode
Fonti, timer e osservatori vengono registrati in una o più modalità di ciclo di esecuzione e vengono eseguiti solo quando il ciclo di esecuzione è in esecuzione in una di queste modalità. Le modalità comuni sono un insieme di modalità di ciclo di esecuzione per le quali è possibile definire un insieme di sorgenti, timer e osservatori condivisi da queste modalità. Invece di registrare una sorgente, ad esempio, in ciascuna modalità di ciclo di esecuzione specifica, è possibile registrarla una volta nella pseudo-modalità comune del ciclo di esecuzione e verrà automaticamente registrata in ciascuna modalità di ciclo di esecuzione nel set di modalità comune. Allo stesso modo, quando una modalità viene aggiunta alla serie di modalità comuni, eventuali sorgenti, timer o osservatori già registrati nella pseudo modalità comune vengono aggiunte alla modalità comune appena aggiunta.
Qualcuno può spiegare i due in linguaggio umano?