OC-----KVC KVO

作者: 爱摄影的铲屎官 | 来源:发表于2016-04-11 11:40 被阅读69次

一、KVC(key value code)的基本概念和用法 

 1、基本概念        

1)键-值编码是一个用于间接访问对象属性的机制,使用该机制不需要调用存取方法和变量实例就可以访问对象属性     

2)通过KVC可以给readonly的属性赋值,      

3)如果对象属性为基本数据类型时,我们存的时候需要将数据封装为NSNumber类型,系统内部存取时,系统会自动封装/解封      

4)如果没有用@property声明,他讲在内部查找名为_key或key的实例变量      

5)路径      除了通过键值设置值外,键/值编码还支持指定路径,通过.号隔开      

6)一对多的关系      如果向NSArray请求一个键值,它实际上会查询数组中的每个对象来查找这个键值,然后将查询结果打包到另一个数组中并返回给你。      

7)可以应用字符做简单运算,sum/min/max/avg/count      

8)存取值格式        存值          setValue:forKey:          setValue:forKeyPath:        取值          valueForKey:          valueForKeyPath:  

2、适用情况:将服务器的内容转化为数据模型,能够简化代码  

 3、练习      定义一个Person对象,他叫乔布斯,他有许多苹果设备:      1个macbook,价格8000      1个iPhone, 价格5000      1个iPad, 价格3800      使用kvc为Person设置名字, 使用kvc计算乔布斯所有设备的总价。   

 二、KVO(Key-Value-Observer)的基本概念和用法    

1、基本概念      一种使对象获取其他独享的特定属性变化的通知机制    

2、适用情况      主要用于试图,交互方面,比如界面的某些数据变化了,界面的显示也需要跟着变化,就需要建立数据和界面的关联    

3、实现步骤      

1)采用下面这个方法给属性添加观察者,在哪里注册观察者就要在哪里移除观察者          - (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context;      2)观察者实现下面方法,如果监听的属性发生变化,便会调用该方法。          - (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary*)change context:(nullable void *)context;

3)个人习惯在delloc中释放

- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath context:(nullable void *)context;

4、练习:

监听狗的动作,做相应的回应

三、通知的基本概念和用法

1、基本概念

1)一种一对多的信息广播机制,一个应用程序同时只能有一个NSNotificationCenter对象

2)任何人都可以发送任何消息到消息中心,识别感兴趣通知的标示就是object+通知名称

2、适用情况

类与类之间传递信息

3、实现步骤

1)添加通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(paySalary) name:@"发工资啦" object:nil];

2)实现添加通知时方法选择器选择的方法

3)在需要发送通知的类中采用下面方法发送通知,发送成功便会执行步骤二实现的方法

[[NSNotificationCenter defaultCenter] postNotificationName:@"发工资啦" object:nil];

4)移除通知

[[NSNotificationCenter defaultCenter] postNotificationName:nil object:nil userInfo:nil];

4、练习

模拟应用程序的通知

相关文章

  • OC-----KVC KVO

    一、KVC(key value code)的基本概念和用法 1、基本概念 1)键-值编码是一个用于间接访问对...

  • iOS原理篇(一): KVO实现原理

    KVO实现原理 什么是 KVO KVO 基本使用 KVO 的本质 总结 一 、 什么是KVO KVO(Key-Va...

  • 04. KVO使用,原理,本质

    问题 KVO日常使用 KVO原理(KVO本质是什么) 如何手动触发KVO 直接修改成员变量会触发KVO吗 KVO图...

  • 20.iOS底层学习之KVO 原理

    本篇提纲1、KVO简介;2、KVO的使用;3、KVO的一些细节;4、KVO的底层原理; KVO简介 KVO全称Ke...

  • 深入理解KVO

    iOS | KVO | Objective-C KVO的本质是什么,如何手动触发KVO? 1.什么是KVO KVO...

  • OC语法:KVO的底层实现

    一、KVO是什么二、怎么使用KVO三、KVO的底层实现四、KVO常见面试题 一、KVO是什么 KVO全称Key-V...

  • KVO基本使用

    分三部分解释KVO一.KVO基本使用二.KVO原理解析三.自定义实现KVO 一、KVO基本使用 使用KVO,能够非...

  • KVO 解析

    KVO解析(一) —— 基本了解KVO解析(二) —— 一个简单的KVO实现KVO解析(三) —— KVO合规性K...

  • KVO

    目录 1. KVO的使用1.1 KVO基本使用方法1.2 KVO手动触发模式1.3 KVO属性依赖1.4 KVO容...

  • OC语言之KVO与KVC

    KVO 什么是KVO? KVO 是 Key-value observing(键值观察)的缩写。 KVO是Objec...

网友评论

    本文标题:OC-----KVC KVO

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