假如A和B需要通信,B需要获取A的消息
首先是delegate和notification这两个,A和B之间有相互的关联用delegate,若A和B毫无联系就该用notification。
然后是KVO,delegate和notification是A和B双方合作的事情,而KVO是B单方面的事情。A有消息了,A通知B,这是delegate;A有消息了,A通知notificationCenter,notificationCenter广播给B,这是notification;A不漂亮,B无感,B偷窥A,A变漂亮了,B心动了,这是KVO。
PS,再初学delgate的时候,网上解释dellegate概念的时候很多都这样的,A委托B干嘛干嘛,当时总觉得有些糊涂,现在回头来看,主次搞错了好伐,应该是B申请A把事情给他干。就像是厂商的代理一样,你要做我的代理(delegate声明),你就必须符合我的条件(delegate实现),起码必须要卖我的东西是吧,这样每当我有产品,才能直接通知代理来卖。