KVC (Key Value Coding) Objective-C 允许以字符串形式间接操作对象的属性,这种方式的全称是 Key Value Coding (简称KVC),即键值编码。
最基本的 KVC 由 NSKeyValueCoding 协议提供支持,最基本的操作属性的两个方法如下:
setValue:属性值 forKey:属性名 >> 为指定属性设置值
valueForKey:属性名 >> 获取制定属性的纸
HDPerson.h
#import <Foundation/Foundation.h>
@interface HDPerson : NSObject
// 使用@property定义3个property
@property (nonatomic, copy) NSString * name;
@property (nonatomic, copy) NSString * pass;
@property (nonatomic, copy) NSDate * birth;
@end
- main.m
#import <Foundation/Foundation.h>
#import "HDPerson.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建HDPerson对象
HDPerson * person = [[HDPerson alloc] init];
//使用KVC方式为name属性设置属性值
[person setValue:@"黑点" forKey:@"name"];
//使用KVC方式为pass属性设置属性值
[person setValue:@"1233" forKey:@"pass"];
//使用KVC方式为name属性设置属性值
[person setValue:[[NSDate alloc] init] forKey:@"birth"];
//使用KVC获取HDPerson对象的属性
NSLog(@"person 的 name 为: %@",[person valueForKey:@"name"]);
NSLog(@"person 的 pass 为: %@",[person valueForKey:@"pass"]);
NSLog(@"person 的 birth 为: %@",[person valueForKey:@"birth"]);
}
return 0;
}
2016-10-25 17:31:39.124 OC_KVC[31849:1185578] person 的 name 为: 黑点
2016-10-25 17:31:39.125 OC_KVC[31849:1185578] person 的 pass 为: 1233
2016-10-25 17:31:39.135 OC_KVC[31849:1185578] person 的 birth 为: 2016-10-25 09:31:39 +0000