KVC

作者: nothing_c | 来源:发表于2016-10-31 20:06 被阅读4次

    //KVC key valve coding (键值编码)

    //优点:不用set .get方法给成员变量{}赋值;间接给属性赋值;减少代码量.封装model类

    //缺点:编译时不报错,运行时报错

    //使用的时候,注意key不要写错

    //1.

    //如果输出id类型的数据,需要用%@,占位符

    //测试kvc是先访问带下划线的属性,如果没有才访问不带下划线的属性

    //如果键写错了,编译时不报错,运行时报错

    //2.

    //间接给属性赋值

    //car是people的属性

    //name是car的属性

    //car需要在people类中初始化

    ///forKeyPath是关键

    //使用valueForKeyPath的时候需要初始化car

    //3.

    //如果字典中存在该类不存在的属性,要去类的.m中重写不然运行会崩溃

    //重写系统的方法(对于多出来的键值对,运行时才不会崩溃)

    //- (void)setValue:(id)value forUndefinedKey:(NSString *)key

    //对于属性多的model,可批量处理,给属性赋值,减少代码量

    //在.m赋值时可调用该方法[self setValuesForKeysWithDictionary:dic];

    //4.

    //copy和retain的区别

    //copy的话,输出不会一致只是copy路径和数据,不会随之更新内容(深)

    //retain的话,输出的内容是一致会随着赋值属性内容的改变而改变(浅)

    //00000

    //如果同时实现了set,get方法,需要在{}中声明_name属性

    //成员变量没有实现set,get方法,所以不会调用

    //以kvc的方式给属性name赋值,会调用set,get方法

    相关文章

      网友评论

          本文标题:KVC

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