微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Objective-C – 比较不按预期工作的整数

所以我的问题是:

我从网络上收到一个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],它仍然评估为false.

我究竟做错了什么?在此先感谢您的帮助!

解决方法

您正在比较指向对象的指针,而不是整数本身.您必须先将对象转换为整数:
if ([[userDictionary objectForKey:@"userid"] integerValue] == -1)
{
     //Do stuff
}

原文地址:https://www.jb51.cc/c/119545.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐