我一直在努力进行简单的比较,但我无法让它发挥作用。 我正在读取XML文件,我需要比较它的数据才能显示正确的图片。
http://www.cleaner.se/larm.xml(用于解析的示例文件)
我尝试过这样的事情:
if([aLarm.larmClass isEqualToString:@"A"])
NSLog(@"same");
else
NSLog(@"Not same");
如果我使用:NSLog(aLarm.larmClass);
控制台可以很好地完成它。我做错了什么?
答案 0 :(得分:7)
您可以使用NSString compare:方法。例如:
if ([myString caseInsensitiveCompare:@"A"] == NSOrderedSame ) {
NSLog(@"The same");
} else {
NSLog(@"Not the same.");
}
结果是NSComparisonResult,它只是一个包含NSOrderedSame,NSOrderedAscending和NSOrderedDescending类型的枚举。
查看各种比较的文档:方法here。
当然,如果接收者实际上是一个NSString,那么isEqualToString:也应该有效。所以如果你想比较一个类名(aLarm.larmClass ??),那么你可以调用:
if ([NSStringFromClass([aLarm class]) isEqualToString:@"A"] ) {
NSLog(@"The same");
}
答案 1 :(得分:0)
如果larmClass
属性是一个字符串,请确保它实际上是一个字符长度(即它没有在解析XML时意外包含的任何前导或尾随空格)。如果larmClass
属性确实是包含字母“A”的NSString
,则[aLarm.larmClass isEqualToString:@"A"]
将返回YES
。
做一个:
NSLog(@"%u, %@", [aLarm.larmClass length], aLarm.larmClass);
并确保它显示“1, A
”。