2011-08-03 86 views
2

我的應用程序在執行我的任何代碼之前繼續崩潰後,我設置了異常斷點。我不知道什麼是錯的。我打印出堆棧跟蹤,但堆棧跟蹤的唯一辨認部,這個問題是在該行: return UIApplicationMain(argc, argv, nil, NSStringFromClass([TACGridAppDelegate class]));Objective C在主要方法中引發的異常

Here is the stack trace: 


`#0 0x014b7cb4 in objc_exception_throw()` 
`#1 0x013209c1 in -[NSException raise]()` 
`#2 0x00a99143 in -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:]()` 
`#3 0x00a0ad5f in _NSSetUsingKeyValueSetter()` 
`#4 0x00a0accf in -[NSObject(NSKeyValueCoding) setValue:forKey:]()` 
`#5 0x00a25d78 in -[NSObject(NSKeyValueCoding) setValue:forKeyPath:]()` 
`#6 0x0035e7af in -[UIRuntimeOutletConnection connect]()` 
`#7 0x013228ba in -[NSObject performSelector:]()` 
`#8 0x0128b251 in -[NSArray makeObjectsPerformSelector:]()` 
`#9 0x0035d303 in -[UINib instantiateWithOwner:options:]()` 
`#10 0x0035eeab in -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:]()` 
`#11 0x00142f2f in -[UIApplication _loadMainNibFileNamed:bundle:]()` 
`#12 0x0014322c in -[UIApplication _loadMainInterfaceFile]()` 
`#13 0x0014281a in -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:]()` 
`#14 0x001514c6 in -[UIApplication handleEvent:withNewEvent:]()` 
`#15 0x00151f34 in -[UIApplication sendEvent:]()` 
`#16 0x0014590c in _UIApplicationHandleEvent()` 
`#17 0x01b4a876 in PurpleEventCallback()` 
`#18 0x012f3ff5 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__()` 
`#19 0x01258902 in __CFRunLoopDoSource1()` 
`#20 0x012571ea in __CFRunLoopRun()` 
`#21 0x01256694 in CFRunLoopRunSpecific()` 
`#22 0x012565ab in CFRunLoopRunInMode()` 
`#23 0x00142326 in -[UIApplication _run]()` 
`#24 0x00143851 in UIApplicationMain()` 
`#25 0x0000215a in main (argc=1, argv=0xbffff610) at /Users/MasonSilber/Desktop/Programming Stuff/iOS Programming/XCode 4/TACGrid/TACGrid/main.m:16` 

任何幫助理解。謝謝!

編輯: 好的,我已經縮小了這個問題。無論何時將TACGridViewController設置爲iPad部署信息中的主界面,它都會引發此異常。這有幫助嗎?

+0

即使錯誤在主線上被拋出,也可能是由於其他地方的代碼錯誤。如果您需要幫助,我們需要查看更多代碼(例如應用程序委託或視圖控制器代碼)。 – lazycs

+0

好的,看下面的帖子。我是iOS新手,所以我認爲將視圖控制器鏈接到我的應用程序委託可能存在問題,但我不確定,並且在過去製作應用程序之前我沒有遇到過這個問題。 – Mason

+0

根據更新的回溯,您可能將對象連接到代碼中不存在的插座。或者,你的財產的設置者拋出一個例外。試着檢查你的XIB,看看XCode是否給出了一個插座不存在的指示。您也可以嘗試刪除所有連接到插座並重新連接它們。 – lazycs

回答

5

閱讀回溯,具體是:

#8 0x0128b251 in -[NSArray makeObjectsPerformSelector:]() 
#9 0x0035d303 in -[UINib instantiateWithOwner:options:]() 
#10 0x0035eeab in -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:]() 

唯一的例外是在廈門國際銀行文件,大概是作爲應用啓動時加載的主要XIB文件的加載發生。

I.e.你的xib文件出錯了。由於拋出異常,應該有一條日誌消息,其中包含有關異常的詳細信息(如果您在調試器中「繼續」,則可能會發生異常)。

很可能,您在源代碼中更改了插座的名稱,但未更新XIB文件。可能是別的東西,但沒有例外的細節,就不可能再多說了。


編輯:好的,我已經縮小的問題。每當我將TACGridViewController設置爲iPad 部署信息中的主界面時,它會引發此異常 。這有幫助嗎?

聽起來像一個不正確的XIB。

  1. 檢查您是否在源文件和xib文件中正確拼寫了類名。

  2. 您是否有任何一家IB網點的自定義套餐?該回溯表明不是,而只是檢查。

  3. 確保您的所有插座在xib文件和源文件之間拼寫正確且相同。

+0

如何獲取異常詳細信息?當我點擊「繼續」時,我只是得到「異常拋出」,當我再次擊中它時,我得到一個SIGABRT。 – Mason

+0

編譯時是否有任何警告(從clean生成?)嘗試運行沒有設置任何斷點的應用程序。 – bbum

+0

沒有編譯器警告。只是沒有斷點就跑,得到了相同的SIGABRT。雖然看到我的編輯。 – Mason