kvc简单实现

除了一般的赋值和取值的方法,我们还可以用Key-Value-Coding(KVC)键值编码来访问你要存取的类的属性

kvc: kvc    key value coding 键值对编码

可以通过 【实体类1 setValue:值 forKey:键】 来给实体类赋值

假如 实体类1的属性中还包含了一个实体类1  想要在改变类属性的值  可以通过【实体类1 setValue:值 forKeyPath:键】

下边就是详细的实现的过程

分为2部分

1 通过 setValue: forKey  给实体类加上属性的值

首先在Person.h文件中创建出属性

{
    NSString *_name;

NSInteger _age;

}

采用这种方式 想说的是这个属性是受保护的但是在viewController中通过这种方法 仍然可以改变他的值 当然 通过属性创建更能够改变啦。

还有就是需要重写 描述方法 方便输出

然后就是ViewController.m中的实现

//创建一个person对象
    Person *person = [[Person alloc]init];

[person setValue:@"zhangsan" forKey:@"_name"];

[person setValue:@12 forKey:@"_age"];

NSLog(@"%@",person);

输出结果:

能够看到成功赋值

2 给person添加一个自身的类属性

{
    NSString *_name;
    NSInteger _age;
    Person *_wife;

}

Viewcontroller.m

- (void)viewDidLoad {
    [super viewDidLoad];
    //创建一个person对象
    Person *person = [[Person alloc]init];
    [person setValue:@"zhangsan" forKey:@"_name"];
    [person setValue:@12 forKey:@"_age"];
   
    //创建出另一个表示wife的person对象 并设置值
    Person *wife = [[Person alloc]init];
    [wife setValue:@"linda" forKey:@"_name"];
    [wife setValue:@12 forKey:@"_age"];
   
    //将设置好的wife当做值加入到person的_wife属性中
    [person setValue:wife  forKey:@"_wife"];
   
    //将wife的名字年龄做更改
   [person setValue:@"lisi" forKeyPath:@"_wife._name"];
    [person setValue:@20 forKeyPath:@"_wife._age"];
   
    NSLog(@"%@",person);

}

输出结果:

时间: 2024-08-28 10:35:40

kvc简单实现的相关文章

iOS开发UI篇—KVC简单介绍

一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observer 键值观察.监听某一个模型的属性,只要模型属性的值一变化就通知你. 二.使用KVC 1.KVC基本使用介绍 (1)代码示例: 新建一个命令行项目,用以演示KVC的用法 完成之后为项目添加一个Person类. 为Person类添加两个属性(name和age),注意这两个属性的类型. 1 #import <Foundation/Fo

ios开发UI基础—Kvc简单介绍

一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observer 键值观察.监听某一个模型的属性,只要模型属性的值一变化就通知你. 二.使用KVC 1.KVC基本使用介绍 (1)代码示例: 新建一个命令行项目,用以演示KVC的用法 完成之后为项目添加一个Person类. 为Person类添加两个属性(name和age),注意这两个属性的类型. 1 #import <Foundation/Fo

文顶顶 iOS开发UI篇—Kvc简单介绍

ios开发UI篇—Kvc简单介绍 一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observer 键值观察.监听某一个模型的属性,只要模型属性的值一变化就通知你. 二.使用KVC 1.KVC基本使用介绍 (1)代码示例: 新建一个命令行项目,用以演示KVC的用法 完成之后为项目添加一个Person类. 为Person类添加两个属性(name和age),注意这两个属性的类型. 1 #impo

Kvc简单介绍

Kvc简单介绍 一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observer 键值观察.监听某一个模型的属性,只要模型属性的值一变化就通知你. 二.使用KVC 1.KVC基本使用介绍 (1)代码示例: 新建一个命令行项目,用以演示KVC的用法 完成之后为项目添加一个Person类. 为Person类添加两个属性(name和age),注意这两个属性的类型. 1 #import <Found

iOS KVO和KVC简单使用

Account.h #import <Foundation/Foundation.h> @interface Account : NSObject @property (nonatomic,assign) float balance; @end Account.m #import "Account.h" @implementation Account @end Person.h #import <Foundation/Foundation.h> #import

KVC简单介绍 -字典转模型,模型转字典

// 以下两个方法,都属于 KVC 的方法 // KVC 是 cocoa 的大招!间接给对象属性设置数值 // 程序执行过程中,动态给对象属性设置数值,不关心 .h 中是如何定义的 //      只要对象有属性(无论是在.h中还是在.m中定义的属性),就能够读取/设置! //      这种方式,有点违背程序的开发原则! // 字典转模型 setValuesForKeysWithDictionary // 模型转字典 dictionaryWithValuesForKeys //假设self.p

UI基础之KVC介绍

一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observer 键值观察.监听某一个模型的属性,只要模型属性的值一变化就通知你. 二.代码颜色 1> 通过KVC设置值  setValue:    forKey: 1,1> @interface Person : NSObject @property (nonatomic, copy) NSString *name; @property (

文顶顶iOS开发博客链接整理及部分项目源代码下载

文顶顶iOS开发博客链接整理及部分项目源代码下载 网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课和跟着文顶顶的博客做项目之后,最快只需要2个月时间,就基本可以独立完成iOS App的开发工作.有经验的开发者也可以在该博客中寻找代码片段进行学习借鉴,必有所收获. 在此也向@文顶顶 表示严重感谢! 由于文顶顶博客博文繁多,每次找文章需要频繁的翻页,

文顶顶博客整理

感谢 文顶顶感谢 ashamp foundation框架 结构体 Foundation框架 字符串 Foundation框架 集合 iOS开发UI篇 Button基础 iOS开发UI篇 手写控件,frame,center和bounds属性 iOS开发UI篇 transframe属性(形变) iOS开发UI篇 简单的浏览器查看程序 iOS开发UI篇 懒加载 ios开发UI篇 安装苹果官方文档和Xcode模拟器 OC语言BLOCK和协议 iOS开发UI篇 九宫格坐标计算 iOS开发UI篇 字典转模型