我正在解析一个 JSON 文件。
获取 NSDictionary 后,我将字典中的对象解析为对象数组。但是,对于某些 JSON 文件,我得到 NULL,这应该没问题,但是对于那些我期待某些内容但得到 null 的地方,它会使我的应用程序崩溃:
- (id)initWithDictionary:(NSDictionary *)boxDictionary {
if ([self init]) {
// ...
int numberOfBoxes = [[boxDictionary valueForKey:@"box_count"] intValue];
int numberOfItemsInBoxes = [[boxDictionary valueForKey:@"box_items_count"] intValue];
// ..
}
return self;
}
基本问题似乎是您从 valueForKey: 调用中返回的 NSNull 上没有 intValue 方法。
您可以添加 intValue 方法,但是对于 NSNull,您希望它返回什么? 0? -1?
执行此操作的代码如下所示。
在 MyNullExtensions.h 中:
@interface NSNull (integer)
-(int) intValue;
@end
在 MyNullExtensions.m 中:
#import "MyNullExtensions.h"
@implementation NSNull (functional)
-(int) intValue
{
return -1;
}
@end
之后,
布莱克。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)