美文网首页
iOS开发delegate、Block、KVC、KVO、NSNo

iOS开发delegate、Block、KVC、KVO、NSNo

作者: 单线程Jack | 来源:发表于2019-07-22 15:18 被阅读0次

KVO就是cocoa框架实现的观察者模式,一般同KVC搭配使用,通过KVO可以监测一个值的变化,比如View的高度变化。是一对多的关系,一个值的变化会通知所有的观察者。

NSNotification是通知,也是一对多的使用场景。在某些情况下,KVO和NSNotification是一样的,都是状态变化之后告知对方。NSNotification的特点,就是需要被观察者先主动发出通知,然后观察者注册监听后再来进行响应,比KVO多了发送通知的一步,但是其优点是监听不局限于属性的变化,还可以对多种多样的状态变化进行监听,监听范围广,使用也更灵活。

delegate 是代理,就是我不想做的事情交给别人做。比如狗需要吃饭,就通过delegate通知主人,主人就会给他做饭、盛饭、倒水,这些操作,这些狗都不需要关心,只需要调用delegate(代理人)就可以了,由其他类完成所需要的操作。所以delegate是一对一关系。

block是delegate的另一种形式,是函数式编程的一种形式。使用场景跟delegate一样,相比delegate更灵活,而且代理的实现更直观。

KVO一般的使用场景是数据,需求是数据变化,比如股票价格变化,我们一般使用KVO(观察者模式)。delegate一般的使用场景是行为,需求是需要别人帮我做一件事情,比如买卖股票,我们一般使用delegate。
Notification一般是进行全局通知,比如利好消息一出,通知大家去买入。delegate是强关联,就是委托和代理双方互相知道,你委托别人买股票你就需要知道经纪人,经纪人也不要知道自己的顾客。Notification是弱关联,利好消息发出,你不需要知道是谁发的也可以做出相应的反应,同理发消息的人也不需要知道接收的人也可以正常发出消息。

相关文章

  • iOS开发delegate、Block、KVC、KVO、NSNo

    KVO就是cocoa框架实现的观察者模式,一般同KVC搭配使用,通过KVO可以监测一个值的变化,比如View的高度...

  • 从网上收集的一些关键知识点总结

    iOS 中KVC、KVO、NSNotification、delegate 总结及区别

  • 面试目录

    一面: 设计模式 Notification、Delegate KVO、KVC block NSThread、GCD...

  • KVC,KVO,消息,代理

    iOS 中KVC、KVO、NSNotification、delegate 总结及区别 1、KVC,即是指 NSKe...

  • iOS面试官最喜欢叫你书写的东西

    写出一个单例 KVO及KVC NSNotification通知 手势 GCD Delegate写法 Block的写...

  • KVC

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

  • KVC 和 KVO

    iOS-KVC和KVO精炼讲解(干货)KVC 和 KVOiOS开发系列--Objective-C之KVC、KVO细...

  • iOS 多播委托

    iOS回调有Delegate,NSNotificationCenter,block,kvo。但是项目中回调 有种情...

  • KVC

    KVC原理剖析 - CocoaChina_让移动开发更简单 iOS开发底层细究:KVC和KVO底层原理 | iOS...

  • iOS日记15-KVC

    1.iOS开发技巧系列---详解KVC 2.漫谈 KVC 与 KVO 3.KVC/KVO原理详解及编程指南 关键点...

网友评论

      本文标题:iOS开发delegate、Block、KVC、KVO、NSNo

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