kvc可以直接对私有属性进行赋值

kvc可以直接对私有属性进行赋值.

p.age =20; 当person有一个height的私有属性时就不能通过.语法赋值了

[p setValue:@170 forKey:@"height"];

p.dog = [[Dog alloc] init];  [p setValue:@200 forKey:@"dog.weight"];

会先去找有没有dog这个key,然后去找有没有weight这个属性。所以我们在使用kvc的时候,最好用forKeyPath这个方法

kvc字典转模型

- (instancetype)initWithDict:(NSDictionary*)dict

{if(self= [super  init]) {    [self setValuesForKeysWithDictionary:dict];    }    returnself;}

kvo的实现原理


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    朽木自雕也阅读 1,605评论 6 1
  • 1 .KVC(Key Value Coding) 键值编码方法,可以给属性,甚至是私有属性进行赋值和取值,简化字典...
    CoderGMQ阅读 298评论 0 0
  • KVC(Key-Value Coding) KVC最常见的两个用途: 给私有的成员变量赋值(当然公有的也可以)比如...
    ForeverYoung21阅读 1,179评论 1 15
  • KVC kvc全称key-value-coding(键值编码),通常是用来给某一个对象的属性进行赋值,比如有一个p...
    珍此良辰阅读 355评论 0 3
  • 1.给私有的成员变量赋值(当然公有的也可以) 比如一个类有一个私有成员变量(在.m文件中),用KVC的方式然后可以...
    sunny12阅读 427评论 0 1