2 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
我沒有嘗試過會(huì)解決這個(gè)問題(嘗試了兩個(gè)編譯器,兩個(gè)調(diào)試器等)。升級(jí)XCode以進(jìn)行iOS 5更新后,沒有任何堆棧跟蹤似乎有效。
但是,我找到了一個(gè)有效的解決方法 - 創(chuàng)建我自己的異常處理程序(由于其他原因也很有用)。首先,創(chuàng)建一個(gè)處理錯(cuò)誤并將其輸出到控制臺(tái)的函數(shù)(以及您想要用它做的任何其他事情):
void uncaughtExceptionHandler(NSException *exception) { NSLog(@"CRASH: %@", exception); NSLog(@"Stack Trace: %@", [exception callStackSymbols]); // Internal error reporting}
接下來,將異常處理程序添加到您的應(yīng)用程序委托:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); // Normal launch stuff}
而已!
如果這不起作用,那么只有兩個(gè)可能的原因:
有些東西會(huì)覆蓋你的
NSSetUncaughtExceptionHandler
電話(你的整個(gè)應(yīng)用只能有一個(gè)處理程序)。例如,某些第三方庫設(shè)置了自己的uncaughtExceptionHandler。因此,嘗試在didFinishLaunchingWithOptions
功能的END處設(shè)置它(或選擇性地禁用第三方庫)?;蛘吒玫氖牵O(shè)置一個(gè)符號(hào)斷點(diǎn)NSSetUncaughtExceptionHandler
,快速查看誰在調(diào)用它。您可能想要做的是修改當(dāng)前的而不是添加另一個(gè)。你沒有真正遇到異常
- 2 回答
- 0 關(guān)注
- 607 瀏覽
添加回答
舉報(bào)