KVC常用注意 两点一个是模型属性中没有的定义的属性在取的时候一定要在模型类重写GET方法,第二点是取字典中没有的Key也要在模型中重写取Key的方法。
- (void)viewDidLoad {
[super viewDidLoad];
self.demon=[[KVCdomen alloc]init];
// [self.demon setValue:@"小强" forKey:@"name"];
// [self.demon setValue:@"18" forKey:@"age"];
// [self.demon setValue:@"男" forKey:@"sex"];
// NSLog(@"%@",self.demon.name);
NSDictionary*dic=@{@"name":@"wangyang",@"age":@"18" ,@"size":@"12"};//当我们的key在字典里面存在但是在模型里面不存在的情况下 我们要在Model里面重写set方法否则会崩
[self.demon setValuesForKeysWithDictionary:dic];
// NSLog(@"%@",self.demon.name);
//此处取字典里面没有的key 如果不写方法会崩
NSString*work=[ self.demon valueForKey:@"studentWork"];
// Do any additional setup after loading the view, typically from a nib.
}
h文件的属性是字符串age ,
@property (nonatomic,strong )NSString*name;
@property (nonatomic,strong )NSString*age;
@property (nonatomic,strong )NSString*sex;
//这个方法在赋值时候没有对应属性时候调用
.m文件 模型中
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
NSLog(@"key没有对应的属性%@",key);
}
//这个方法在取值时,取值没有器对应属性调用
-(id)valueForKey:(NSString *)key{
NSLog(@"%@你取的Key,没有对应的属性");
return nil;
}