首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C:将字符串与if()值进行比较在[NSMutableArray objectatindex:]上不起作用

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

Stack Overflow用户
提问于 2011-01-10 23:11:13
回答 3查看 29K关注 0票数 12

我使用NSXML Parser在我的程序中用NSMutableString值填充了一个NSMutableArray。

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

代码语言:javascript
复制
 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];
}

下面是控制台的输出:

代码语言:javascript
复制
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’部分。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-10 23:16:22

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

取而代之的是你想要的东西:

代码语言:javascript
复制
if (! [yakitVal isEqualToString:@"LPG"]) {
票数 38
EN

Stack Overflow用户

发布于 2011-01-10 23:16:10

尝试使用

代码语言:javascript
复制
if (![yakitVal isEqualToString:@"LPG"])
{
...
}

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

EDIT:已取消条件。

票数 5
EN

Stack Overflow用户

发布于 2011-01-10 23:39:32

谢谢你们的回答,程序终于像我想要的那样运行了。

我还意识到我的yakitval在它的末尾有一个新的行字符。因此,我添加了如下内容来工作

代码语言:javascript
复制
yakitVal = [yakitVal stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4648229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档