Cari brava gente di StackOverflow,NSDefaultRunLoopMode vs NSRunLoopCommonModes
Proprio come l'ultima volta, con la presente apparire una domanda ho recentemente inciampare su. Spero che qualcuno là fuori possa far luce su di me.
Ogni volta che provo a scaricare un file grande dietro UIScrollView
, MPMapView
o qualcosa del genere, il processo di download viene interrotto non appena tocco lo schermo dell'iPhone. Per fortuna, un fantastico post sul blog di Jörn suggerisce un'opzione alternativa, usando NSRunLoopCommonModes
per la connessione.
che viene mi guardo nel dettaglio delle due modalità, NSDefaultRunLoopMode e NSRunLoopCommonModes, ma il documento Apple non gentilmente spiegare, altro che dire
NSDefaultRunLoopMode
Il modo di trattare con le sorgenti di ingresso di altri rispetto agli oggetti NSConnection. Questa è la modalità di esecuzione più comunemente utilizzata.
NSRunLoopCommonModes
oggetti aggiunti a un ciclo di esecuzione utilizzando questo valore come modalità sono monitorati da tutti i modi di loop di esecuzione che sono stati dichiarati un membro del set di modalità “comuni", vedi la descrizione dei CFRunLoopAddCommonMode per i dettagli.
CFRunLoopAddCommonMode
Fonti, timer s, e gli 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à del ciclo di esecuzione per cui è possibile definire un insieme di sorgenti, timer e osservatori che sono condivisi da queste modalità. Invece di registrare un'origine, ad esempio, per ciascuna modalità 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 nella serie di modalità comune. Allo stesso modo, quando una modalità viene aggiunta al set di modalità comuni, tutte le sorgenti, i timer o gli osservatori già registrati alla pseudo modalità comune vengono aggiunti alla modalità comune appena aggiunta.
Qualcuno può spiegare per favore i due in linguaggio umano?
Caro Viggio24, grazie mille per questa spiegazione pulita e precisa. Chiederei ad Apple di includere il tuo commento nella guida API. ;) – Stkim1
Ho upvoted la tua risposta perché è assolutamente chiaro !! Grazie per avere condiviso le tue conoscenze. –
** la risposta di viggio24 ** è perfetta. Per chi fosse interessato, vorrei sottolineare che ** Session 208 (App di rete per iPhone OS, parte 2) ** del WWDC 2010 contiene un'introduzione sui loop di esecuzione. Se sei interessato dai un'occhiata. Spero che sia d'aiuto. –