If-Else语句不起作用

时间:2012-06-19 04:05:09

标签: objective-c ios if-statement xml-parsing

我有一个if-else语句,它不像我想要的那样工作。这是保存变量的语句之前的方法:

[self.conditionsLabel setText:weather.weathercondition];
NSLog(@"%@", weather.weathercondition);
condition = weather.weathercondition;

这是if-else语句:

if ([weather.weathercondition isEqualToString:@"Clear"]) {
    conditionsImageView.image = [UIImage imageNamed:@"Sun.png"];
}
else {
    conditionsImageView.image = [UIImage imageNamed:@"Partly_Sunny.png"];
}

在我的控制台中,weather.weathercondition显而易见,但是当它通过if-else语句时,它总是转到else并显示Partly_Sunny.png。我正在测试它,我知道字符串将是“清除”。我从XML源获取数据,如果我在互联网上查看它,这就是它显示数据的方式:

<weatherDesc>
<![CDATA[ Clear ]]>

这是原因吗?它在清除之前说CDATA,但在代码中,它总是记录为Clear,没有CDATA和其他东西。我尝试将<![CDATA[ Clear ]]>放在isEqualToString:中,但结果相同。任何帮助将不胜感激。我是解析XML的新手,而且是Objective-C的新手,所以请原谅任何错误(不在代码中,但一般而言)。我非常感谢你的帮助。

3 个答案:

答案 0 :(得分:2)

CDATA是一个构造,表示内部应该被视为纯文本(不是XML)。当XML解析器检测到它时,它将删除CDATA构造并在构造中显示数据。

答案 1 :(得分:0)

设置而不是

[self.conditionsLabel setText:weather.weathercondition];

使用此行

[self.conditionsLabel setText:[NSString stringWithFormat:@"%@", weather.weathercondition]];

之后获取weather.weathercondition

获取NSString并检查if语句

答案 2 :(得分:0)

尝试替换

<weatherDesc>
<![CDATA[ Clear ]]>

<weatherDesc>
<![CDATA[Clear]]>