web-dev-qa-db-ja.com

iOSでNSErrorメッセージを取得する方法

以下に示すように、ビューコントローラーにメソッドがあります。

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

ここで、アラートのNSErrorに実際のエラーメッセージを表示する必要があります。

30
Monish Kumar

使用する [error localizedDescription]エラーメッセージを表示します

28
mkodamati

通常、_[error localizedDescription]_を使用して、ユーザーに表示するテキストを取得します。

その他のオプションについては、NSErrorのドキュメントをご覧ください。

開発時の単純なロギングの場合、NSLog(@"Error: %@", error)を実行できます。 (これにより、「localizedDescription」およびXcodeのログにあるその他すべてが得られます。)

45
jtbandes

現在の回答に追加するには、失敗メッセージと失敗理由を取得できます。これを行うには、NSErrorが表示されたときにこれを行うことができます。

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

これにより、エラーが発生したメソッドの名前、エラーの説明、およびエラーを説明する文を含む3行の文字列が作成されます。

NSErrorでより多くの情報が提供されている場合は、localizedRecoverySuggestionも取得して、次のようにメッセージに追加できます。

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

ユーザー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;
}
1
Baljeet Singh