2012-07-17 111 views
0

我做了我的故事板的項目,由於與自定義UITableViewCell的問題我做了一個新的項目,將所有的數據複製到我的新班級,並從故事板複製我的按鈕,圖像等對新項目的nib/xib文件的看法。iPhone應用程序崩潰的按鈕點擊

現在,當我上的任何按鈕點擊我的應用程序崩潰,沒有任何錯誤,它會打開文件委託,並強調此行的我已經做好了從IB必要的行動,以控制器的連接代碼

return UIApplicationMain(argc, argv, nil, NSStringFromClass([ThisOrThatAppDelegate class])); 

。此外,我已經嘗試了Command + Shift + K以獲得乾淨的代碼。但問題仍然存在。

回答

2

你必須找出問題首先是什麼:

  • 使用調試版本的配置和使用LLDB或GDB
  • 確保你對所有異常斷點
  • 確保您啓用左上角的「斷點」按鈕。
  • 運行應用程序

你應該打破進入調試。您需要達到調試器捕獲異常的地步。

然後編輯你的問題,告訴我們你得到了什麼異常。我會猜測你會得到一個objc_msgSend()錯誤,這意味着某個對象試圖傳遞一個不存在的或有處理的對象。如果事實證明這是真的,那麼你可以啓用「殭屍」(讓所有物體停留在周圍),看看是否有其中一個消息。

如果沒有任何幫助,那麼你需要做的是開始添加NSLog消息來跟蹤你的應用程序(或使用斷點,你的選擇)。這需要很長時間,所以你可能會倒退 - 看看你的appDelegate應用程序:didFinishLaunchingWithOptions:被調用,以及如果你到達它的結尾。

不幸的是,這類問題可能需要很長時間才能追查。有些對象可能已經在主隊列中爲另一個對象排隊了一條消息,所以當你發生崩潰時,你不會看到誰在什麼時候做什麼。

此外,在objc_msgSend問題中,當調試程序停止時,您無法輕鬆看到對象是什麼消息 - 但如果關閉調試器並讓應用程序實際崩潰,則可以在控制檯應用程序中找到崩潰報告,並獲取更多來自那個的信息。