Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-C:将字符串与if()值进行比较在[NSMutableArray objectatindex:]上不起作用_Objective C_Xcode_Nsmutablearray - Fatal编程技术网

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

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

我已经使用NSXML解析器在程序中用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];
}
即使我可以从控制台窗口看到“yakitVal”值是LPG,程序也不会进入“Else”部分

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

尝试使用

if (![yakitVal isEqualToString:@"LPG"])
{
...
}
要比较字符串值,请不要==或!=


编辑:否定条件。

您不能将字符串与
==
进行比较=。从技术上讲,这只是比较指针,而不是值,这是您想要做的

相反,你想要的是:

if (! [yakitVal isEqualToString:@"LPG"]) {

谢谢你们的回答,程序终于按照我的要求运行了

我还意识到我的yakitval在它的末尾有一个新行char。所以我加上了这个“喜欢工作”

yakitVal = [yakitVal stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
yakitVal = [yakitVal stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];