KVC

KVC:键值编码

赋值有各种各样的方式,点语法,KVC......


KVC的核心功能 : 修改类中的私有属性


创建一个Person类,私有属性_personAge

@interface Person : NSObject

{

    @private

    int _personAge;

}

//姓名,体重,狗

@property(nonatomic, copy) NSString *name;

@property(nonatomic,assign)int weight;

@property(nonatomic, strong) Dog *dog;

-(void)loagAge;

@end


-(void)loagAge{

    NSLog(@"age = %d",_personAge);

}

创建一条狗

@interface Dog : NSObject

@property(nonatomic, copy) NSString *name;

@property(nonatomic,assign)int  dogAge;

@end


简单编写:

self.p = [[Person alloc]init];

self.d = [[Dog alloc]init];

self.p.dog = self.d;

//通过KVC的方式给Person和Dog的属性赋值

//Person name

[self.p setValue:@"小明" forKeyPath:@"name"];

NSLog(@"self.p = %@",self.p.name);


//Person 私有属性_age

[self.p setValue:@18 forKeyPath:@"personAge"];

[self.p loagAge];


[self.p setValue:@"dog" forKeyPath:@"dog.name"];

NSLog(@"self.d = %@",self.d.name);


输出结果:

self.p = 小明

age = 18

self.d = dog

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

推荐阅读更多精彩内容

  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    朽木自雕也阅读 5,478评论 6 1
  • 目录:1.KVC用法;2.KVC和对象的setter、getter方法的区别;3.key和keyPath的区别;4...
    伦伦子_f7b3阅读 3,717评论 0 1
  • KVC(Key-Value Coding) KVC最常见的两个用途: 给私有的成员变量赋值(当然公有的也可以)比如...
    ForeverYoung21阅读 4,842评论 1 15
  • 时间,让人着迷。回头看过往,时光飞逝,很短;向前看未来,路途漫漫,很长。 引用一句形象的话:人生就像在雪地里行走,...
    万能的船长阅读 4,921评论 0 0
  • 总目录 伊日毕斯沉浸在难言的兴奋之中,甚至作为指挥官的他也亲自参与了劫掠活动。 当地的民兵简直不堪一击,也对,俄日...
    幻想中圣人阅读 2,669评论 3 6