代理和block传值

 我对代理的理解就是:有些事情的原因你最清楚,就像苹果的UITableViewDelegate UITableViewDataSource两个代理,苹果知道表视图是怎么滚动的,滚动的速度,方向,要怎么展示,可是它不知道要展示什么数据,要怎么展示,这些相关的逻辑和数据,都需要开发者定义,因此它定义了两个代理属性,有相应的代理方法,开发者只需将对应的参数传递给他就可以。

       再举一个简单的例子,就像小孩和保姆的关系,只有小孩知道自己是不是饿了,要吃什么,而保姆只是有照顾小孩的功能的一类代表。当小孩饿的时候,baby会告诉能照顾自己的这类人,我饿了,要吃饭。而保姆就可以做相应的工作。

定义代理的几个步骤:

     1> 创建代理,添加代理方法

    2> 添加代理属性

3> 在需要的时候调用,例如在点击自定义的UITableViewCell中的button需要刷新列

      表,即可在button点击事件中调用代理对象的代理方法

4> 在代理类中,成为代理对象,遵守代理协议


5> 实现代理方法



Block

block传值和代理的用法相似,只是少了创建代理,添加代理方法,称为代理对象,遵守代理协议这些步骤。

它的具体步骤如下:

  1> 创建block,添加block属性

2> 在需要的地方调用block

3> 在实现的地方使用block

如果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容