KVC 是key,value,coding的缩写,即键值编码。在iOS中,可以通过类的属性的名称(key),来间接访问对象的属性信息。
建一个工程,创建一个zzPerson类,它有两个属性,name和address。
zzPerson.h:
#import <Foundation/Foundation.h>
@interface zzPerson : NSObject
{
NSString * name,address;
}
@end
ViewController.h:
在ViewController.h文件中引入zzPerson类头文件,ViewController有一个zzPerson类型的属性sam。
#import <UIKit/UIKit.h>
#import "zzPerson.h"
@interface ViewController : UIViewController
@property(nonatomic,retain)zzPerson * sam;
@end
ViewController.m:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//创建zzPerson对象sam
_sam=[[zzPerson alloc]init];
//通过key,value设置对象sam的信息
[_sam setValue:@"纠结伦" forKey:@"name"];
[_sam setValue:@"30" forKey:@"address"];
//通过Person的属性访问sam这个对象的信息。
NSLog(@"%@",[_sam valueForKey:@"name"]);
NSLog(@"%@",[_sam valueForKey:@"address"]);
}
一个类(zzPerson)的对象(sam)通过setValue:forKey语句,来设置对象属性的信息,其中Key就是类(zzPerson)的属性,也是该对象(sam)的属相,这里的key分别是name和address,通过key设置它们的信息。再通过对象调用valueforkey:语句可以访问到key对应的属性信息。