我的程序检查如果有一个NSError
对象存在,并将其发送给另一个方法,像这样:检查与预期字符串NSError描述失败
if([response isEqualToString:@""]) {
[self handleError:commandError];
}
在handleError:
,我尝试检查,对预期的字符串,如本地化说明这个:
-(void)handleError:(NSError*)error
{
NSString* errorDescription = [error localizedDescription];
NSLog(@"%@",errorDescription); //works fine
if([errorDescription isEqualToString:@"sudo: no tty present and no askpass program specified"]) {
NSLog(@"SO Warning: Attempted to execute sudo command");
}
}
但是,if语句没有被触发。日志输出与我在if语句中输入的内容完全相同。
您确定描述中没有隐形字符吗?要检查,在分隔符之间打印描述:'NSLog(@“|%@ |”,errorDescription);' –
请发布NSLog输出。 – danh
此外,这是不正确的可可错误处理。该惯例要求您在使用'NSError'之前检查直接返回值,而不是错误是否为'nil'。从快速浏览中,我相信NMSSH会遵循这个惯例。除非'execute:error:'的返回值为'nil',否则不应触及错误。不过,这可能不是你问题的一部分。 –