Attempted to dereference an inva
2020-03-18 本文已影响0人
怎么老是ni
bug现象:在对一个model进行取值时 一直报错
bug原因:将一个字典或者其他model赋值给当前取值model
eg:
<1>
@interface TestModelA :NSObject
@proprety(nonatomic,copy)NSString *name;
@proprety(nonatomic,copy)NSString *sex;
@end
TestModelA *modelA= @{@"name":@"lee"}
当然这种错误直观的能看出来,但是当一个字典作为参数传值的时候就有可能出现这种情况:
- (void)testWithParam:(id)param {
//如果param为字典类型时 就会出错
TestModelA *modelA = param;
NSLog(@"%@",modelA.name);
}
<2>
在对于一个modelA进行重构(得到ModelB)时 依然使用旧的modelA 就会报错
@interface TestModelB :NSObject
@proprety(nonatomic,copy)NSString *name;
@end
这个时候,如果数据json映射给的TestModelB,这个时候调用TestModelA.name是没有任何问题的
但是调用TestModelA.sex就会报出标题的错误
本次bug原因:因为后台模型更换,对于模型进行了重构,但是数据中依然使用旧的Model进行取值,当新增对于model新增属性时 再取这个属性就会报错
bug解决:将旧的model更换为新的model