我是Ios开发的初学者,我想比较两个通常相等但每次比较都会失败的字符串,然后转到其他字符串:

NSString *response = [session.channel execute:@"gpio read 0" error:&error];//execute SSH command and write this one in log

NSLog(response);
if ([response isEqualToString:(@"1")]) {
    [session.channel execute:@"gpio write 0 0" error:&error];
} else {
    [session.channel execute:@"gpio write 0 1" error:&error];
}


这是我的输出,响应等于1,但未使用if:


  2014-04-08 20:01:38.065 domotiqueRPI [36948:1303] NMSSH:执行命令gpio读取0
  
  2014-04-08 20:01:38.108 domotiqueRPI [36948:60b] 1
  
  2014-04-08 20:01:38.109 domotiqueRPI [36948:1303] NMSSH:执行命令gpio写0 1


当然,我在stackOverFlow上搜索,但是所有信息都告诉我:is to use isEqualToString method

最佳答案

您在响应末尾会有一个换行符。尝试这个:

NSString *response = [session.channel execute:@"gpio read 0" error:&error];
response = [response stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];


这将从响应字符串中删除尾随和前导空格/换行符。

顺便说一句-不需要@"1"括号。

关于ios - 字符串比较失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22944959/

10-12 00:15
查看更多