码迷,mamicode.com
首页 > 移动开发 > 详细

ios delegate, block, NSNotification用法

时间:2016-04-07 18:30:30      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:

ios中实现callback可以通过两种方法,委托和NSNotification

委托的话是一对一的关系,例如一个UIViewController里有一个tableView, 将该viewController设置为tableView的委托,tableView执行的时候调用委托的函数,同时可能需要得到反馈,比如tableView通过调用delegate中rowsOfSections函数来得到该tableView的行数,调用委托函数的时候也可能不需要反馈,例如UIApplication的在AppDelegate中的生命周期函数,还有UIScrollView的didScroll之类委托函数。委托的意思是有些方法不在类本身实现,而是在另一个类中实现。

NSNotification的话是一对多的关系,notification发出去以后发送方就不管了,接不接收以及接收后做什么发送方就不管了。

 

委托的实现:

一般来说通过delegate来实现,但是apple引入block后通过block也可以实现委托。二者区别是,如果有一堆接口的话可以用delegate,例如UITableView的delegate,因为它需要通过委托知tableView有多少个section,每个section有多少row,每个row的cell是什么;但是如果是调用方和block的执行结果有直接因果关系,用block就比较合适,例如UIView animation方法中的complete block,动画结束后直接执行block中的逻辑,当然complete block也可以通过delegate实现,实现方法是给UIView设定一个delegate,动画结束后UIView调用delegate中的方法。

ps:delegate实现的过程中需要指定的类来实现特定的protocol。

ios delegate, block, NSNotification用法

标签:

原文地址:http://www.cnblogs.com/yibinpan/p/5364752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!