美文网首页
Attempted to dereference an inva

Attempted to dereference an inva

作者: 怎么老是ni | 来源:发表于2020-03-18 15:12 被阅读0次

    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

    相关文章

      网友评论

          本文标题:Attempted to dereference an inva

          本文链接:https://www.haomeiwen.com/subject/przqyhtx.html