2013-08-29 35 views
5

我正在使用中等大小的iOS代碼庫,並且不是主要開發人員。我經常發現自己處於在iOS模擬器中運行應用程序的位置,看到我想要編輯或使用的視圖(例如,我希望獲得的textview文本視圖),但沒有好的將所述視圖追溯回代碼庫中的文件的方式。我的問題是,有沒有什麼好的方法(確定性地或啓發式地)從在iOS模擬器中運行的實例化視圖中「回溯」回到實際定義/包含的代碼文件/接口構建器文件說的看法?iOS在與模擬器中的視圖對應的代碼中查找文件

例如,我在模擬器中看到一個textview,其文本的設置方式不同,我想要一種方法來查找textview在其中定義的.xib/storyboard和/或任何IBOutlet。我曾嘗試使用Reveal App,它似乎提供了有關應用程序的整體視圖結構和視圖類的一些信息,但我無法將其引回到代碼和/或界面構建器文件。 Reveal App確實顯示視圖的內存地址 - 也許有一種方法可以結合lldb使用它來確定視圖來自哪個文件?

+0

你可能想看看http://stackoverflow.com/questions/5150186/how-do-i-inspect-the-view-hierarchy-in-ios,特別是接受的答案。 –

+0

我在一個案例中採取了編寫特殊代碼的方式,該代碼將搜索頁面的「樹」視圖以查找某個X/Y位置。有時候這並不容易。 –

+0

哇,也許我沒有得到你的問題,看到其他評論... – CaptJak

回答

0

要做到這一點,一種方法是按住Ctrl鍵並單擊要編輯的插座(文本視圖或其他)並查看連接導致的位置。或者您可以單擊需要編輯的項目,並檢查右側的Connections Inspector並查看連接到的項目。

這不會告訴你它到底在哪裏,但它會給你這個想法。然後,你可以梳理它指向的區域中的代碼,並查看它引用的內容和內容。

此外,如果你這樣做,你可以看到什麼叫插座,然後可以搜索該插座的代碼或項目。

+0

這個答案解決了一個相關但不同的問題。我更感興趣的是*看看模擬器中的東西* - > *找出它在源代碼中定義的位置*。 –

2

我知道它的一個非常古老的問題。但是,如果您仍然在尋找答案,您可以在任意點處中斷執行,並使用lldb打印出一些信息。然後,例如,如果您的應用程序與其他大多數應用程序一樣,具有作爲根視圖控制器的UINavigationController,那麼您可以嘗試查看頂視圖控制器是什麼。如果這是一個TabView的,則多了幾分挖.. u得到漂移...

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

這似乎是工作得相當好。不太直截了當,但不是一件壞事。

相關問題