2009-08-21 22 views
4

我的應用程序運行在模擬器罰款...但不是真實設備....,我已經越獄的iPhone,所以我無法通過設備調試如果我使用嘗試捕捉類似這樣在實際設備上使用xcode中的try catch塊嗎?

@try 
{ 
Statements 
} 

@catch (NSException *ex) { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"%@",ex] 
                delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
    [alert show]; 
} 

我的應用程序會在崩潰之前在alertview上顯示錯誤嗎?

如果不是,我怎麼能找到錯誤在哪裏?

回答

4

捕捉異常意味着你正在做出響應這個「錯誤」的事情,它不會崩潰應用程序,這就是捕獲異常的重點 - 告訴如何處理錯誤發生的情況,以便你的應用程序不會崩潰,所以是警報視圖將顯示...

0

只要您的@catch塊在嘗試構建UIAlertView時不會拋出任何異常,就會工作。確保你releaseautorelease它,並支持UIAlertViewDelegate協議。

+0

即使他不執行協議的應用程序不會崩潰,直到他點擊該按鈕,使警報仍將顯示 – Daniel 2009-08-21 15:32:30

+0

這是真的,只是想用提任何「陷阱」 – slf 2009-08-21 17:08:11

+0

這個原因我的應用程序變得非常慢,它不顯示任何alertview ...我做錯了什麼? 如何顯示nsexception作爲alertview消息 – 2009-08-23 10:04:12

0

試試這個:

UIAlertView *alert = [[UIAlertView alloc] 
initWithTitle:[ex name] 
message:[ex reason] 
delegate:self 
cancelButtonTitle:@"OK" 
otherButtonTitles: nil]; 
+0

如何顯示應用程序崩潰時的警報...它顯示gdb中的錯誤 – 2009-08-25 09:09:27

+0

您原來的帖子說,你不能使用附加GDB,你讓我困惑 – slf 2009-08-26 18:06:41