美文网首页
KVC简单使用

KVC简单使用

作者: 最远的地方00 | 来源:发表于2016-06-24 16:22 被阅读0次
// Person模型
@interface Person : NSObject
{
    @private
    double _height;
}
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic, copy, readonly) NSString *gender;
@prpperty (nonatomic, strong) Book *book;
- (void)printHeight;

.m
- (void)printHeight {
    NSLog(@"Height is %f",_height);
}
// Book模型
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) double price;

1、KVC使用

// 使用KVC可以随意修改一个对象的属性或者成员变量(包括私有的,只读的)
[person setValue:@"Bill" forKeyPath:@"name"];
[person setValue:@"male" forKeyPath:@"gender"];
[person setValue:@"180" forKeyPath:@"height"];
[person printHeight];

 // 获取数值
 NSString *name = [person valueForKeyPath:@"name"];

2、key 和 keyPath 区别

/** forkeyPath包含forkey的功能
    forKeyPath中可以里利用.运算符,可以一层一层往下查找对象的属性
    使用forkey 报错找不到book.name这个key
*/
// [person setValue:@"Harry Potter" forKey:@"book.name"];
[person setValue:@"Harry Potter" forKeyPath:@"book.name"];

3、获取所有同属性的值

// 获取所有同属性的值
Book *book1 = [[Book alloc] init];
book1.name = @"水浒传";

Book *book2 = [[Book alloc] init];
book2.name = @"三国演义";

Book *book3 = [[Book alloc] init];
book3.name = @"西游记";

Book *book4 = [[Book alloc] init];
book4.name = @"红楼梦";

NSArray *books = @[book1, book2, book3, book4];

/** 获取所有的书名
    原理:取出books数组中每一个元素name属性值,放到一个新的数组中返回
 **/
NSArray *names = [books valueForKeyPath:@"name"];
NSLog(@"%@",names);

(水浒传,
三国演义,
西游记,
红楼梦
)

4、利用KVC将字典数据转换为模型
setValuesForKeysWithDictionary:

//初始化数据
NSDictionary *dic  = [NSDictionary dictionaryWithObjectsAndKeys:@"james",@"name",@"male", @"gender",@"18",@"age", nil];

Person *person = [[Person alloc] init];
[person setValuesForKeysWithDictionary:dic];
NSLog(@"name:%@,gender:%@,age:%ld",person.name,person.gender,person.age);

//name:james,gender:male,age:18

相关文章

  • KVC

    iOS 如何使用KVC iOS开发UI篇—Kvc简单介绍 iOS开发系列--Objective-C之KVC、KVO

  • KVC简单使用

    1、KVC使用 2、key 和 keyPath 区别 3、获取所有同属性的值 4、利用KVC将字典数据转换为模型s...

  • Objective-C之KVC

    参考资料: KVCKVC的简单使用 KVC简介 KVC全称是Key-Value-Coding(键值编码),使用KV...

  • 关情纸尾---UIKit基础-简述KVC和KVO

    ♥概述 ♥键值编码KVC ♥点语法和KVC ♥ 键值监听KVO ♥KVO的使用步骤也比较简单:

  • KVC的简单使用

    KVC字典转模型 KVC 中经常使用的就是字典转模型 KVC的大招 KVC设置对象属性及取值 KVC间接设置对象属...

  • KVC的简单使用

    KVC(Key-value coding)键值编码,iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,...

  • KVC的简单使用

    KVC 介绍及简单使用有了解过C#的同学都知道,C#高级语法中有一种机制叫“反射”乍一听这名字还让人摸不着头脑,还...

  • KVC的简单使用

    KVC即Key Value Coding键值编码,它提供了一种通过字符串而不是访问器间接访问或修改对象属性的机制。...

  • KVC详解

    KVC 目录结构KVC定义KVC取值和设置KVC使用keyPathKVC处理字典KVC作用 参考:iOS KVC和...

  • iOS原理篇(二): KVC实现原理

    KVC实现原理 什么是 KVC KVC基本使用 KVC 原理 总结 一 、 什么是KVC KVC的全称是Key-V...

网友评论

      本文标题:KVC简单使用

      本文链接:https://www.haomeiwen.com/subject/yoiodttx.html