我的程序檢查如果有一個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',否則不應觸及錯誤。不過,這可能不是你問題的一部分。 –