2013-08-29 9 views
5

Sto lavorando su una base di codice iOS di medie dimensioni e non sono lo sviluppatore principale. Spesso mi trovo in una posizione in cui eseguo l'app nel simulatore iOS, vedo una vista che vorrei modificare o utilizzare (ad es. Una textview di cui vorrei ricevere il testo), ma poi non ne ho una buona modo di tracciare la vista in un file nel codice base. La mia domanda è: ci sono dei buoni modi (sia deterministicamente che euristicamente) per "tornare indietro" da una vista che si vede nell'istanza in esecuzione dell'app nel simulatore iOS per tornare al file di codice/file di builder dell'interfaccia che effettivamente definisce/contiene ha detto vista?iOS trova il file nel codice che corrisponde a una vista nel simulatore

Ad esempio, nel simulatore vedo un testo il cui testo mi piacerebbe impostare in modo diverso, e voglio un modo per trovare il .xib/storyboard in cui è definita la vista testo in e/o qualsiasi IBOutlet. Ho provato a utilizzare Reveal App, che sembra fornire alcune informazioni sulla struttura di visualizzazione complessiva dell'app e sulle classi di visualizzazione, ma non sono stato in grado di fare riferimento a questo codice e/o al file di builder dell'interfaccia. Reveal App mostra l'indirizzo di memoria delle viste - forse c'è un modo per usarlo in combinazione con lldb per capire da quale file proviene la vista?

+0

Si potrebbe voler dare un'occhiata a http://stackoverflow.com/questions/5150186/how-do-i--pre-view-hierarchy-in-ios, in particolare la risposta accettata. –

+0

Io in un caso ho fatto ricorso alla scrittura di un codice speciale che cercava la vista "albero" di una pagina per una determinata posizione X/Y. A volte non è facile. –

+0

Woah, Forse non ho avuto la tua domanda, vedendo gli altri commenti ... – CaptJak

risposta

0

Un modo per farlo sarebbe Ctrl + clic sulla presa che si desidera modificare (la visualizzazione del testo o qualsiasi altra cosa) e vedere dove portano le connessioni. Oppure puoi cliccare sull'elemento che necessita di modifica e controllare l'ispettore di connessioni nella parte destra e vedere a cosa è connesso.

Questo non ti dirà esattamente dove si trova, ma ti darà l'idea. Quindi potresti semplicemente passare attraverso il codice nell'area a cui punta, e vedere dove viene fatto riferimento e cosa no.

Anche se lo si fa in questo modo, è possibile vedere come viene chiamata la presa, che consentirebbe quindi di cercare il codice o il progetto per quella presa.

+0

Questa risposta affronta una domanda correlata ma diversa. Sono più interessato al caso d'uso di * vedere qualcosa nel simulatore * -> * capire dove è definito nel codice sorgente *. –

2

So che è una domanda molto vecchia. Tuttavia, se si sta ancora cercando una risposta, è possibile interrompere l'esecuzione in qualsiasi punto arbitrario e utilizzare lldb per stampare alcune informazioni.

Quindi, se, ad esempio, la tua app, come la maggior parte delle altre app, dispone di un UINavigationController come controller di visualizzazione radice, puoi provare a vedere il controller di visualizzazione superiore. Se questo è un TabView, poi un po 'più di scavo .. u ottiene la deriva ...

po [(UINavigationController *)[[[UIApplication sharedApplication] keyWindow] rootViewController] topViewController] 

Questo sembra funzionare abbastanza bene. Non troppo semplice, ma non un cattivo affare.

Problemi correlati