技术的乐趣在于分享,欢迎多多交流,多多沟通。
全部博文(877)
分类: iOS平台
2015-06-18 14:33:59
今天看了下优才网的几个视频教程,KVO、KVC、谓词、通知,算是开发中的高级点的东西了。通知和协议都是类似于回调一样,于是就在思考通知和协议到底有什么不同,或者说什么时候该用通知,什么时候该用协议。
在网上看到这样一段有关解释:
协议有控制链(has-a)的关系,通知没有。?首先我一开始也不太明白,什么叫控制链(专业术语了~)。但是简单分析下通知和代理的行为模式,我们大致可以有自己的理解?简单来说,通知的话,它可以一对多,一条消息可以发送给多个消息接受者。?代理按我们的理解,到不是直接说不能一对多,比如我们知道的明星经济代理人,很多时候一个经济人负责好几个明星的事务。?只是对于不同明星间,代理的事物对象都是不一样的,一一对应,不可能说明天要处理A明星要一个发布会,代理人发出处理发布会的消息后,别称B的?发布会了。但是通知就不一样,他只关心发出通知,而不关心多少接收到感兴趣要处理。?因此控制链(has-a从英语单词大致可以看出,单一拥有和可控制的对应关系。
通知需要有一个通知中心:NSNotificationCenter
,自定义通知的话需要给一个名字,然后监听。
通过setDelegate来设置代理对象,最典型的例子是常用的 TableView.
以上信息有些来自网络,本人整理。
虽然还是有点模糊,但是我想后面多用一些,应该会清除一些,另外还有类似的如KVO,上下文通知(context notification)等等,这里就不讨论了。