通知:只发出通知,不需要知道向谁发出通知,一般情况下是一对多的关系,类似于广播的原理,广播台发出广播,听不听是用户的事情。
delegate:强调单一拥有和可控制,改变和传递控制链,比如tableView,它的协议是UITableViewDelegate与UITableViewDataSource,在处理tableView的时候,需要遵守相应地协议,才能控制table。我们遵守协议后,用到相应地方法,比如构建UITableViewCell方法,需要知道当前页面处于哪一行,则该方法就告诉我们处于哪一行,同时我们想定制cell的样式,则页面得到cell信息。这样达到单一拥有和可控制的效果。
block
1.写法更简单,不需要写protocol,函数等
2.block注重结果的传输,比如对于一个事件,只想知道成功或者失败,并不需要知道进行了多少或者额外的信息
3.block需要注意防止死循环