我有一个 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。我现在正在测试它,我知道该字符串将是“Clear”。我从 XML 源获取数据,如果我在 Internet 上查看它,它就是这样显示数据的:
<weatherDesc>
<![CDATA[ Clear ]]>
是这个原因吗?它在 Clear 之前说 CDATA,但在代码中,它总是记录为 Clear,没有 CDATA 和其他东西。我试着把 <![CDATA[ Clear ]]>
在 isEqualToString: 中,但结果相同。任何帮助将不胜感激。我是解析 XML 的新手,也是 Objective-C 的新手,所以请原谅任何错误(不是在代码中,而是在一般情况下)。非常感谢您的帮助。
最佳答案
CDATA 是一种结构,表示内部的任何内容都应被视为纯文本(而非 XML)。当 XML 解析器检测到它时,它将删除 CDATA 结构并在结构中呈现数据。
关于objective-c - If-Else 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11094213/