所以我的问题是:
我从网络上收到一个JSON字符串。解码后(使用SBJSON库),它变成了一个NSDictionary,它应该包含一些关键字'userid'的类型。我说'应该',因为当我将值与int,NSINTEGER或NSNumber进行比较时,它永远不会正确评估。
以下是代码中的比较:
NSDictionary *userDictionary = [userInfo objectAtIndex:indexPath.row];
if ([userDictionary objectForKey:@"userid"] == -1) {
//Do stuff
}
我正在测试的字典里面的值是-1。当我使用NSLog将其打印到控制台时,它甚至显示为-1。然而,当我在'if'语句中将它与-1进行比较时,如果它应该为真,则计算结果为false。我甚至尝试比较[NSNumber numberWithInt:-1],它仍然评估为假。
我做错了什么?在此先感谢您的帮助!
答案 0 :(得分:16)
您正在比较指向对象的指针,而不是整数本身。您必须先将对象转换为整数:
if ([[userDictionary objectForKey:@"userid"] integerValue] == -1)
{
//Do stuff
}