版权声明:本文为博主原创文章,未经博主允许不得转载。 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
文件下
我们查看这个文件中的方法,发现这个文件中是一些分类的集合