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

上一篇下一篇

猜你喜欢

热点阅读