【发布时间】:2013-04-25 01:11:43
【问题描述】:
我正在循环通过NSDictionaries 的NSArray,然后我想使用NSDictionary 中的一个值,它是BOOL 类型的if 语句.. 但我遇到了一些麻烦这样做。
这就是我的for loop 的样子
for(NSDictionary *dict in arrayOfDictionaries)
{
NSNumber *boolCheck = [dict objectForKey:@"ISREADY"]; // isReady is the bool value which is either 0 or 1
if (boolCheck == [NSNumber numberWithBool:YES]) {
//...
}
}
发生的事情是它循环通过我的数组,但从未满足我的 if 语句的条件,即使我 100% 确定数组中存在这种类型的值......而且其中有很多。
任何帮助将不胜感激。
【问题讨论】:
-
您正试图按地址比较两个对象。这将告诉您这两个对象是否是相同的对象,但如果它们具有相同的 VALUE 则不会。您可以将两个 NSNumber 对象与
isEqualToNumber:进行比较,但是像 Tom 建议的那样提取和测试值是更好的方法。
标签: ios objective-c nsarray boolean nsdictionary