Objective-C:将字符串与if()值进行比较对[NSMutableArray objectatindex:]不起作用

dre*_*der 12 xcode objective-c nsmutablearray

我已经使用NSXML Parser在我的程序中使用NSMutableString值填充了NSMutableArray.

我可以使用objectatindex方法成功地从数组中获取结果,但是当我尝试在if()结构中组合该值时,它不起作用,但是NSLog显示它返回了正确的值.继承我日志窗口上的代码和输出:

 int Total = 0;
 int Adet = 0;
 int LPGvolume = 0;
 for(int i = 0;i<[yakitArray count];i++)
 {
     NSMutableString *yakitVal = [NSMutableString stringWithFormat:@"%@",[yakitArray objectAtIndex:i]];
     NSLog(@"Yakitval: %@",yakitVal);
     if(yakitVal != @"LPG")
     {
         NSMutableString *volumeVal = [volumeArray objectAtIndex:i];
         Total = Total + [volumeVal integerValue];
     }
     else
     {
         NSLog(@"LPG Found!");
         NSMutableString *volumeVal = [volumeArray objectAtIndex:i];
         LPGvolume = [volumeVal integerValue];
     }
     NSMutableString *adetVal = [adetArray objectAtIndex:i];
     Adet = Adet + [adetVal integerValue];
}
Run Code Online (Sandbox Code Playgroud)

并且控制台输出:

2011-01-10 16:58:10.885 iStationTouch3[39393:7907] Yakitval: Value1
2011-01-10 16:58:10.886 iStationTouch3[39393:7907] Yakitval: Value2
2011-01-10 16:58:10.886 iStationTouch3[39393:7907] Yakitval: LPG
2011-01-10 16:58:10.887 iStationTouch3[39393:7907] Yakitval: Value3
2011-01-10 16:58:10.888 iStationTouch3[39393:7907] Yakitval: Value4
2011-01-10 16:58:10.889 iStationTouch3[39393:7907] Yakitval: Value5
Run Code Online (Sandbox Code Playgroud)

即使我可以从控制台窗口看到'yakitVal'值是LPG,程序永远不会进入'Else'部分.

也许我太累了,看不到这个简单的解决方案,但我坚持这个.请帮忙!!.

Ste*_*ton 38

你不能用==和比较字符串!=.从技术上讲,这只是比较指针而不是值,这是你想要做的.

相反,你想要的东西:

if (! [yakitVal isEqualToString:@"LPG"]) {
Run Code Online (Sandbox Code Playgroud)


tro*_*foe 5

尝试使用

if (![yakitVal isEqualToString:@"LPG"])
{
...
}
Run Code Online (Sandbox Code Playgroud)

比较字符串值,而不是==或!=.

编辑:否定条件.