2010-08-10 44 views
24

我有如下圖所示在我的視圖控制器的方法:如何獲取Iphone SDK中的NSError消息?

- (void)parser:(PaymentTermsLibxmlParser *)parser encounteredError:(NSError *)error 
{ 
    NSLog("error occured"); 
} 

在這裏,我需要證明我的警報在NSError實際的錯誤消息在任何一個建議如何得到它。

希望我能得到你們的快速回復。

在此先感謝。 Monish。

回答

23

使用[錯誤localizedDescription]這顯示錯誤消息

43

通常情況下,您需要使用[error localizedDescription]來獲取要顯示給用戶的文本。

閱讀NSError文檔以獲取更多選項。

對於開發時的簡單日誌記錄,可以執行。 (這會給你 'localizedDescription' 和一切在你的日誌中的Xcode。)

1

用戶error.userInfo,它返回字典EX:

NSLog(@"%@",error.userInfo); 
{ 
code = 101; 
error = "invalid login parameters"; 
originalError = "Error Domain=NSURLErrorDomain Code=-1011 \"The operation  couldn\U2019t be completed. (NSURLErrorDomain error -1011.)\""; 
temporary = 0; 
} 
3

要添加到當前答案,您可以獲取失敗消息和失敗原因。

NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason]]; 

這將創建一個3線串發生錯誤的方法,錯誤的描述和一句話來說明錯誤的名稱:要做到這一點,你可以當與NSError提出這樣做。

如果更多的信息在NSError提供,你可以得到localizedRecoverySuggestion以及並添加到消息,像這樣:

NSString *message = [NSString stringWithFormat:@"%s\n%@\n%@\n%@", __PRETTY_FUNCTION__, displayRegion, [error localizedDescription], [error localizedFailureReason], [error localizedRecoverySuggestion]]; 
相關問題