iOS进阶_KVC

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wtdask/article/details/84881477

KVC(Key-value coding)

键值编码

基本使用

实例:
WTPerson.h

#import <Foundation/Foundation.h>

@interface WTPerson : NSObject{
//    @public  //@protect默认
    NSString * _name;
}

/** name  **/
//@property(nonatomic,strong)NSString * name;

@end

ViewController.m

#import "ViewController.h"
#import "WTPerson.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *text;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    WTPerson * p = [WTPerson new];
    //访问成员变量
    //p.name = @"wt";
    //NSLog(@"%@",p.name);
    
    //访问私有变量(必须要要设置为public才可访问)
    //p->_name = @"wt";
    //NSLog(@"%@",p->_name);
    
    //KVC(即使不用public修饰,也可以访问私有变量)
    [p setValue:@"wt" forKey:@"name"];
    NSLog(@"%@",[p valueForKey:@"name"]);
    
    [self.text setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
}

KVC赋值取值过程分析和自定义及异常处理(没写完,周一写)

在项目中
commond+shift+o 搜索setValue:forKey发现在Foundation框架下的NSKeyValueCoding文件下

在这里插入图片描述

我们查看这个文件中的方法,发现这个文件中是一些分类的集合

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wtdask/article/details/84881477
KVC