我使用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];
}下面是控制台的输出:
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甚至我可以从控制台窗口中看到'yakitVal‘值是LPG,程序永远不会进入'Else’部分。
也许我太累了,看不到这个简单的解决方案,但我坚持这样做。请帮帮忙!!。
发布于 2011-01-10 23:16:22
不能将字符串与==和!=进行比较。从技术上讲,这将只是比较指针,而不是值,这是您想要做的。
取而代之的是你想要的东西:
if (! [yakitVal isEqualToString:@"LPG"]) {发布于 2011-01-10 23:16:10
尝试使用
if (![yakitVal isEqualToString:@"LPG"])
{
...
}来比较字符串值,而不是==或!=。
EDIT:已取消条件。
发布于 2011-01-10 23:39:32
谢谢你们的回答,程序终于像我想要的那样运行了。
我还意识到我的yakitval在它的末尾有一个新的行字符。因此,我添加了如下内容来工作
yakitVal = [yakitVal stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];https://stackoverflow.com/questions/4648229
复制相似问题