Ответ 1
используйте [error localizedDescription]
который отображает сообщение об ошибке
У меня есть метод в моем контроллере представления, как показано ниже:
- (void)parser:(PaymentTermsLibxmlParser *)parser encounteredError:(NSError *)error
{
NSLog("error occured");
}
Здесь мне нужно показать фактическое сообщение об ошибке в NSError в моем предупреждении, может ли кто-нибудь подсказать, как его получить.
используйте [error localizedDescription]
который отображает сообщение об ошибке
Обычно вы хотите использовать [error localizedDescription]
, чтобы текст отображался пользователю.
Прочитайте документацию NSError для получения дополнительных параметров.
Для простого ведения журнала при разработке вы можете сделать NSLog(@"Error: %@", error)
. (Это даст вам "localizedDescription" и все остальное в вашем журнале в Xcode.)
Чтобы добавить к текущим ответам, вы можете получить сообщение об ошибке и причину сбоя. Для этого вы можете сделать это при представлении 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]];
Пользователь 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;
}