【问题标题】:Objective-C - Comparing integers not working as expectedObjective-C - 比较整数不能按预期工作
【发布时间】: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。

我做错了什么?提前感谢您的帮助!

【问题讨论】:

    标签: objective-c json comparison integer


    【解决方案1】:

    您正在比较指向对象的指针,而不是整数本身。您必须先将对象转换为整数:

    if ([[userDictionary objectForKey:@"userid"] integerValue] == -1)
    {
         //Do stuff
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多