栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是代理和通知,写一下他们基本的实现方式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是代理和通知,写一下他们基本的实现方式

代理:“一对一”,对同一个协议,一个对象只能设置一个代理delegate

六个步骤:1.声明一个协议,定义代理方法2.遵循协议3.设置一个代理对象4.调用代理方法5.给代理赋值6.实现代理方法

注意事项:1.单例对象不能用代理;2.代理执行协议方法时要使用respondsToSelector检查其代理是否符合3.协议(检查对象能否响应指定的消息),以避免代理在回调时因为没有实现方法而造成程序崩溃

使用场景:公共接口,方法较多也选择用delegate进行解耦 iOS最常用tableViewDelegate, textViewDelegate iOS有很多例子比如常用的网络库AFNetwork,ASIHTTP库, UlalertView 类。

通知:一对一 一对多 传值四个步骤:1.发送通知2.创建监听者3.接收通知4.移除监听者

使用场景:1一很多控制器都需要知道一个事件,应该用通知;2 一相隔多层的两个控制器之间跳转

注意事项:1.一旦接收消息的对象多了,就难以控制了,可能有你不希望的对象接收了消息并做了处理2.创建了观察者,在dealloc里面一定要移除;

Block:Block是i〇S4.0+和Mac OS X 10.6+引进的对C语言的扩展,用来实现匿名函数的特性。Blocks语法块代码以闭包得形式将各种内容进行传递,可以是代码,可以是数组 无所不能。闭包就是能够读取其它函数内部变量的函数。就是在一段请求连续代码中可以看 到调用参数(如发送请求)和响应结果。所以采用Block技术能够抽象出很多共用函数,提 高了代码的可读性,可维护性,封装性。

使用场景:—: 动画二:数据请求回调三:枚举回调四:多线程gcd

注意事项:Iblock需要注意防止循环引用参考网址:http://www.cnblogs.com/wenboliu/articles/5422033.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/366504.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号