我从网络上提取 JSON 格式的数据,当我使用“ValueForKeyPath”解析数据时,它将字符串值存储为 id 对象。
所以我将数据存储到 NSMutableArray
在调试器窗口中,它显示添加为 (id) null 的所有元素。
我有一个 if 语句
if ([[self.activeCategories objectAtIndex:selected] boolValue] == true)
有时我会说 20% 的情况下它会失败 if 语句,而实际上它不应该失败。
我想知道是否是因为 self.activeCategories
正在存储 id
类型。我需要对数组内的所有对象执行 [NSString stringWithFormat@"%@", x]
吗?似乎当我只是使用 (NSString *) 直接转换它时,它仍然是调试器中的 id 类型。
这对我来说是一个非常奇怪的错误......因为该错误不能始终重现。
最佳答案
像这样尝试一下:
if ([[self.activeCategories objectAtIndex:selected] boolValue])
据此article BOOL 可能包含 0 和 1 以外的值,这可能导致比较失败。
关于ios - 如果语句有时与 id BoolValue 比较失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368663/