美文网首页
KVC、KVO、通知的用法

KVC、KVO、通知的用法

作者: 任梦RM | 来源:发表于2016-07-07 15:26 被阅读37次

一、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:
      setValuesForKeysWithDictionary:

    取值

      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<NSString*, id> *)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] ;

相关文章

  • KVC、KVO、通知的用法

    一、KVC(key value code)的基本概念和用法 1、基本概念 2、适用情况:将服务器的内容转化为数据模...

  • KVC、KVO的本质

    这篇文章介绍KVC、KVO的本质。如果你对KVC、KVO不了解,推荐先查看其用法:KVC和KVO学习笔记[http...

  • KVC\KVO-代理-通知-整理中

    KVC\KVO-代理-通知

  • KVC和KVO

    KVC和KVO今天在这里给大家详解一下KVC和KVO的用法, 在这里首先给大家介绍一下KVC的用法,虽然他俩看似只...

  • Key-Value-Observing OC&Swift

    KVC 支持实例变量,KVO 只能手动支持手动设定实例变量的KVO实现监听。KVO通过set方法来通知。或者KVC...

  • KVC、KVO探识(六)KVO底层实现原理

    前言 KVO的用法前面已经讲过了,不懂得可以去看我的KVC、KVO探识(一),希望会对你有帮助。今天主要讲KVC、...

  • 说一下KVC和KVO

    本篇采用简单的例子,来介绍 iOS 中的 KVC 和 KVO 的用法和实现原理。 一、KVC 1. KVC是什么 ...

  • KVO、KVC、通知

    一、KVC ====基本概念 它是一种可以直接通过字符串类型的属性名(key)来访问某个类属性的机制。而不是通过调...

  • 数据存储

    1.1.3.使用通知传值 1.2.Segue使用 2. KVC&&KVO2.1.什么是KVC KVC - Key ...

  • KVC、KVO

    KVC、KVO探识(一)KVO和KVO的详细使用 KVC、KVO探识(二)KVC你不知道的东西 KVC、KVO探识...

网友评论

      本文标题:KVC、KVO、通知的用法

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