0

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

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

我有一个 if 语句

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

有时我会说 20% 的情况下它不应该通过 if 语句。
我想知道是否是因为self.activeCategories存储id类型。我是否需要对[NSString stringWithFormat@"%@", x]数组中的所有对象执行此操作?似乎当我直接使用 (NSString *) 直接转换它时,它仍然id是在调试器中输入的。

这对我来说是一个非常奇怪的错误......因为该错误并非始终可重现。

4

1 回答 1

1

试试这样:

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

根据那篇文章,一个 BOOL 可能包含 0 和 1 以外的值,这可能会导致比较失败。

于 2013-05-03T23:45:07.340 回答