Objective-C:将字符串与if()值进行比较在[NSMutableArray objectatindex:]上不起作用
我已经使用NSXML解析器在程序中用NSMutableString值填充了NSMutableArray 我可以使用objectatindex方法成功地从数组中获取结果,但当我尝试在if()结构中组合该值时,它不起作用,但NSLog显示它返回了正确的值。以下是我在日志窗口中的代码和输出:Objective-C:将字符串与if()值进行比较在[NSMutableArray objectatindex:]上不起作用,objective-c,xcode,nsmutablearray,Objective C,Xcode,Nsmutablearray,我已经使用NSXML解析器在程序中用NSMutableString值填充了NSMutableArray 我可以使用objectatindex方法成功地从数组中获取结果,但当我尝试在if()结构中组合该值时,它不起作用,但NSLog显示它返回了正确的值。以下是我在日志窗口中的代码和输出: int Total = 0; int Adet = 0; int LPGvolume = 0; for(int i = 0;i<[yakitArray count];i++) { NSM
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];
}
即使我可以从控制台窗口看到“yakitVal”值是LPG,程序也不会进入“Else”部分
也许我太累了,看不到那个简单的解决方案,但我还是坚持这个。请帮忙 尝试使用
if (![yakitVal isEqualToString:@"LPG"])
{
...
}
要比较字符串值,请不要==或!=
编辑:否定条件。您不能将字符串与
==
和进行比较=代码>。从技术上讲,这只是比较指针,而不是值,这是您想要做的
相反,你想要的是:
if (! [yakitVal isEqualToString:@"LPG"]) {
谢谢你们的回答,程序终于按照我的要求运行了
我还意识到我的yakitval在它的末尾有一个新行char。所以我加上了这个“喜欢工作”
yakitVal = [yakitVal stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
yakitVal = [yakitVal stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];