美文网首页
iOS:KVC的实践用法

iOS:KVC的实践用法

作者: 棋剑千秋 | 来源:发表于2018-11-08 22:04 被阅读0次

KVC,即是指 [NSKeyValueCoding],一个非正式的 Protocol,提供一种机制来间接访问对象的属性。注意这里的间接一词,后面会讲道为什么是间接。
一个对象拥有某些属性。比如说,一个 Person 对象有一个 name 和一个 age 属性。以 KVC 说法,Person 对象分别有一个 value 对应他的 name 和 age 的 key。 key 只是一个字符串,它对应的值可以是任意类型的对象。从最基础的层次上看,KVC 有两个方法:一个是设置 key 的值,另一个是获取 key 的值。
直接上代码,可以复制过去运行一下看看:

- (UITextField *)textField {
    if (!_textField) {
        _textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 200, 30)];
        _textField.placeholder = @"这是一个Demo";
        [self.view addSubview:self.textField];
    }
    return _textField;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    /**
     利用KVC调用隐藏的方法来做一些事情
    **/
    //利用KVC来修改placeholder的字体颜色
    [self.textField setValue:[UIColor redColor] forKeyPath:@"placeholderLabel.textColor"];
    //利用KVC来调用隐藏的方法来做count,max,min,sum
    NSMutableArray *array = [NSMutableArray new];
    PersonModel *person = [PersonModel new];
    person.age = 30;
    PersonModel *person1 = [PersonModel new];
    person1.age = 20;
    PersonModel *person2 = [PersonModel new];
    person2.age = 50;
    [array addObject:person];
    [array addObject:person1];
    [array addObject:person2];
    NSLog(@"%@",[array valueForKey:@"@count"]);
    NSLog(@"%@",[array valueForKeyPath:@"@max.age"]);
    NSLog(@"%@",[array valueForKeyPath:@"@min.age"]);
    NSLog(@"%@",[array valueForKeyPath:@"@sum.age"]);
}

运行结果如下:


image.png

何为间接?就是有些方法是隐藏的,没有暴露出来,通过KVC可以间接的去调用他们来完成一些事情,不需要自己去实现,比如这些基本的方法经常会用到。

相关文章

  • iOS:KVC的实践用法

    KVC,即是指 [NSKeyValueCoding],一个非正式的 Protocol,提供一种机制来间接访问对象的...

  • KVC原理分析

    iOS中的KVC,我们都熟记于心了,它的用法一般就是 setValue这样的用法 一、KVC之用法 我们在代码里...

  • 说一下KVC和KVO

    本篇采用简单的例子,来介绍 iOS 中的 KVC 和 KVO 的用法和实现原理。 一、KVC 1. KVC是什么 ...

  • iOS Objective-C KVC 的常见用法

    iOS Objective-C KVC 的常见用法 前言 在我们的开发中经常会用到kvc给属性赋值或者取值操作,但...

  • KVC底层实现步骤

    参考 iOS底层-KVC使用实践以及实现原理 [a setValue:value forKeyPath:@"ico...

  • iOS 关于KVC的一些总结(转)

    原文:iOS 关于KVC的一些总结 本文参考: KVC官方文档 KVC原理剖析 iOS KVC详解 KVC 简介 ...

  • iOS知识梳理11:KVC 和KVO

    参考链接:[精辟]KVO 和 KVC 的区别和用法,干货!!!iOS开发技巧系列---详解KVCKVC的优点和缺点...

  • iOS KVC进阶用法

    1. KVC字典操作 2. KVC消息传递 array 3. 聚合操作符 @avg、@count、@max、@...

  • KVC

    iOS 如何使用KVC iOS开发UI篇—Kvc简单介绍 iOS开发系列--Objective-C之KVC、KVO

  • iOS KVC (十)模型转换

    iOS KVC(一)基本了解iOS KVC (二) 不可不知的赋值深层次原理iOS KVC (三)不可不知的取值...

网友评论

      本文标题:iOS:KVC的实践用法

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