Che cosa troverete nel Navigatore Debug

04/05/2010 by admin

Ogni applicazione all'interno IOS è costituito da uno o più fili, ciascuno dei quali rappresenta un singolo percorso di esecuzione attraverso codice dell'applicazione. Ogni applicazione inizia con un singolo thread, che gestisce la funzione principale dell'applicazione.

Il thread principale comprende ciclo ciclo principale dell'applicazione, ed è dove l'oggetto NSApplication riceve gli eventi. Le applicazioni possono aggiungere (micelio) thread aggiuntivi, ognuno dei quali esegue il codice di un metodo specifico.

Selezione di un elemento in Xcode 4 di Debug navigatore provoca informazioni sulla voce da visualizzare nell'editor Source. Ad esempio, la selezione di un metodo visualizza il codice sorgente per tale funzione nell'editor di origine.

Fili di per sé sono ben oltre la portata di questo articolo, ma va bene così: Qui sarete interessati con solo il thread principale.

Ogni volta che si invia un messaggio (o effettuare una chiamata di funzione), la memorizza le informazioni di debug su di esso in un stack frame e quindi memorizza tutti questi fotogrammi stack di chiamate.

Quando sei gettato nel debugger causa di un errore (o se si sospende l'applicazione facendo clic sul pulsante Pausa sulla barra degli strumenti), Xcode visualizza l'elenco delle discussioni, e all'interno di ogni thread lo stack chiamate di quel filo, mettendo il più recente chiamare in alto. Lo stack di chiamate mostra una traccia degli oggetti e metodi che è ottenuto a dove siete ora.

Anche se la traccia non è poi così utile in questo particolare contesto, può essere molto utile in un'applicazione più complessa - che può aiutare a capire il percorso che avete preso per arrivare dove siete. Vedendo come un oggetto ha inviato un messaggio a un altro oggetto - che ha inviato un messaggio a un terzo oggetto - può essere davvero utile, soprattutto se non si prevede che il flusso del programma di lavoro in questo modo.

Ottenere uno sguardo al stack di chiamate può essere utile se si sta cercando di capire come il quadro fa il suo lavoro, e in quale ordine i messaggi vengono inviati. Come vedrete presto, è possibile interrompere l'esecuzione del programma in un punto di interruzione e tracciare i messaggi inviati fino a quel punto.


Articoli Correlati