【发布时间】:2015-01-21 10:19:00
【问题描述】:
我从 web 服务器读取 json 得到一个字典数组,并使用以下内容确保在获取数组的第一个字典中的特定键之前获得它的 int 值:
if([jsonObject[0] objectForKey:@"votes"]!= nil)
{
int votes = [[jsonObject[0] objectForKey:@"votes"] intValue];
[[UserObject userUnique] updateVotes:votes];
}
但是,我的应用程序仍然偶尔会崩溃,说我在 Null 上调用了 intValue。我也尝试将控制语句构造为
if([jsonObject[0] objectForKey:@"votes"])
但这也会导致相同的错误/应用程序崩溃。我的语法似乎与 SO (Check if key exists in NSDictionary is null or not) 上接受的答案一致。关于其他什么/我应该如何检查键值对的存在以应用 intvalue 的任何建议?
感谢您的建议。
【问题讨论】:
-
您在字典中为“投票”存储什么类型的对象? NSNumber?
-
@Fonix 这是一个 NSString
-
请发布完整的错误信息。有没有提到
NSNull? -
@GuillaumeAlgis 我会发布完整的错误,但我无法按需生成它。它确实提到了 NSNull。我正在尝试 Jeffery Thomas 在下面的回答,并将更新以说明这是否有效。