KVC的使用

利用KVC修改类的私有成员变量(UIPageControl)

// 利用KVC修改类的私有成员变量 _age = 8;
[person setValue:@"88" forKeyPath:@"_age"]; // KVC赋值 自动类型转换 age _age


// 6.设置pageControl的图片
    [self.pageControl setValue:[UIImage imageNamed:@"current"] forKeyPath:@"_currentPageImage"];
    [self.pageControl setValue:[UIImage imageNamed:@"other"] forKeyPath:@"_pageImage"];
// KVC赋值
/*
forKey和forKeyPath
1>forKeyPath 包含了所有 forKey 的功能
2>forKeyPath 进行内部的点语法,层层访问内部的属性
3>注意:key值一定要在属性中找到
*/
作用:字典转模型
/*
   开发中是不建议使用setValuesForKeysWithDictionary:
   1> 字典中的key必须在模型的属性中找到(模型属性可多余字典key值)
   2> 如果模型中带有模型,setValuesForKeysWithDictionary不好使
   应用场景:简单的字典转模型 ---> 框架 (MJExtention)
*/
作用:模型转字典
NSDictionary *dict = [person dictionaryWithValuesForKeys:@[@"name", @"money"]];
NSLog(@"%@", dict);
作用:取出数组中所有模型的某个属性值
NSArray *allPersons = @[person1, person2, person3];
NSArray *allPersonName = [allPersons valueForKeyPath:@"name"];
NSLog(@"%@", allPersonName);

你可能感兴趣的:(KVC的使用)