2012-04-30 26 views
1

我正在研究一個大型(> 3萬行)事件驅動的應用程序。我有一系列的輸入會產生一個錯誤。我想要做的就是在最終輸入輸入我的代碼後立即中斷。Xcode/iPhone - 當下一個事件輸入我的代碼時中斷?

有沒有一個通用的方法來做到這一點?

我明白,對於任何特定的輸入序列,我都可以找出最後一個輸入將要輸入的代碼,然後在那裏設置一個斷點。我想要做的就是去掉「找出最後輸入輸入我的代碼的位置」的步驟。換句話說,我在模擬器中運行應用程序,並且我想在某處設置一個標誌,表示「下次打算進入非系統目標C代碼」。然後我發送導致問題的事件。

回答

1

我明白你在問什麼,但你有沒有嘗試過使用異常斷點?這基本上就像引發異常的代碼片段上的自動插入斷點一樣。如果不爲你工作,嘗試一個象徵性的斷點

+1

有些錯誤不會產生異常。例如,它可能是錯誤的輸出。 –

+1

這就是爲什麼我提到符號斷點。您可以將'符號'設置爲任何您想要的值(例如 - [ClassWithInput methodTriggered]),甚至設置一個條件或任意數量的時間忽略此調用。 http://developer.apple.com/library/mac/#recipes/xcode_help-breakpoint_navigator/articles/adding_a_symbolic_breakpoint.html – JoeCortopassi

+1

+1符號斷點,這應該真的是你的文章的重點。 –

0

如果你想攔截UI事件,你可以嘗試繼承UIWindow和覆蓋其sendEvent:方法,然後設置這個類爲在主類中的一個UIWindow對象XIB文件。每次用戶生成觸摸事件時,都會調用sendEvent:。不幸的是,在這一點上,你還不知道哪個UI對象最終會消耗事件(讀取:哪個事件處理程序代碼將最終被調用),因爲這取決於響應者鏈的實際狀態。但無論如何,您可以使用此方法將事件注入系統。

+0

感謝您的回覆。但事件可能會在達到我的代碼之前通過一些系統代碼。單步執行該代碼可能並不容易。 –

相關問題