iOS 开发 Objective-C

iOS 底层 day05 KVC

2020-08-26  本文已影响0人  望穿秋水小作坊

KVC(Key-value coding)键值编码,就是指 iOS 的开发中,可以运行开发中通过 Key 名直接访问对象的属性,或者给对象的属性赋值,而不需要调用明确的存取方法。这样就可以再运行时动态地访问和修改对象的属性。而不是在编译时确定,这也是 iOS 开发中的黑魔法之一。很多高级的 iOS 开发技巧都是基于 KVC 实现的。

一、KVC 基本用法

1. setValue:forKey:valueForKey
        Person *person = [[Person alloc] init];
        [person setValue:@10 forKey:@"age"];
        NSLog(@"%@", [person valueForKey:@"age"]);
2. setValue:forKey:valueForKey
        Person *person = [[Person alloc] init];
        person.cat = [[Cat alloc] init];
        [person setValue:@10 forKeyPath:@"cat.weight"];
        NSLog(@"%@", [person valueForKeyPath:@"cat.weight"]);

二、KVC setValue:forKey:valueForKey 的原理

1. setValue:forKey: 设置值的原理流程图
`setValue:forKey:` 设置值的原理流程图
2. valueForKey 取值的原理流程图
`valueForKey` 取值的原理流程图

三、KVC 相关问题解答

1. KVC 会触发 KVO 吗?
2. KVC 设置值的过程和 KVC 取值的过程
上一篇 下一篇

猜你喜欢

热点阅读