Objective-C - 比较整数不能按预期工作
Posted
技术标签:
【中文标题】Objective-C - 比较整数不能按预期工作【英文标题】:Objective-C - Comparing integers not working as expected 【发布时间】:2010-12-19 18:46:06 【问题描述】:所以我的问题是这样的:
我正在通过网络接收一个 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 进行比较时,当它应该为真时,它的评估结果为假。我什至尝试过与 [NSNumber numberWithInt: -1] 进行比较,结果仍然为 false。
我做错了什么?提前感谢您的帮助!
【问题讨论】:
【参考方案1】:您正在比较指向对象的指针,而不是整数本身。您必须先将对象转换为整数:
if ([[userDictionary objectForKey:@"userid"] integerValue] == -1)
//Do stuff
【讨论】:
以上是关于Objective-C - 比较整数不能按预期工作的主要内容,如果未能解决你的问题,请参考以下文章