如果语句失败有时与id BoolValue比较?

时间:2013-05-03 22:53:00

标签: ios objective-c nsstring comparison boolean

我从使用JSON格式化的Web中提取数据,当我使用“ValueForKeyPath”解析数据时,它将字符串值存储为id对象。

所以我将数据存储到NSMutableArray 在调试器窗口中,它显示添加为(id)null的所有元素。

我有一个if语句

if ([[self.activeCategories objectAtIndex:selected] boolValue] == true)

有时我会说20%的时间它不会失败if语句 我想知道是不是因为self.activeCategories正在存储id类型。我是否需要对数组中的所有对象执行[NSString stringWithFormat@"%@", x]?看起来当我只是通过使用(NSString *)直接转换它时,它仍然是调试器中的id类型。

这对我来说是一个非常奇怪的错误......因为错误不能始终如一地重现。

1 个答案:

答案 0 :(得分:1)

尝试这样:

if ([[self.activeCategories objectAtIndex:selected] boolValue])

根据article,BOOL可能包含0和1以外的值,这可能会使比较失败。