几道面试小题
2016-05-16 13:51
417 查看
1.代理的优缺点,你在什么情况下会用到代理?
1)优点:
1.代理在自定义控件方面具有其绝对的优势(AFN)
2.在一个控制器中可以定义定义多个不同的协议,每个协议有不同的delegates;
3.非常严格的语法。所有监听到的事件必须是在delegate协议中有清晰的定义。
2)缺点:
1.需要定义很多的代码;1)协议定义;controller的delegate属性;3)在delegate中实现delegate方法
2在释放代理对象时需要小心的将delegate置为nil
应用:
控件比较多,接口比较多的时候;
2.通知的优缺点
1)优点:
1.不需要编写多少代码,实现比较简单
2.可以一对多,即:一个对象发出的通知,多个对象能够做出反应
2)缺点:
1;在释放注册的对象时,需要在通知中心取消注册;
2:在编译期不会检查通知是否能够被观察者正确的处理;
3:通知发出后,controller不能从观察者获得任何的反馈信息。
3.block的优缺点
优点:
1.Blocks 更清晰。比如 一个 viewController 中有多个弹窗事件,Delegate 就得对每个事件进行判断识别来源。而 Blocks 就可以在创建事件的时候区分开来了。这也是为什么现在苹果 API 中越来越多地使用 Blocks 而不是 Delegate。
缺点:
1.缺点是若你的响应部分处理不当,若多次返回,那么你的代码会乱套
场景:
适合BLOCK的显著特点,有明确的发起方和响应方,两者能配对需要紧密联系。如:网络请求。
4.ViewController生命周期
alloc -> initWithNibName -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> dealloc
5.给imageView图片设置圆角
1)在CALayer中设置cornerRadius属性
2) drawRect中使用UIBezierPath画一个圆角的path, 然后clip. 但是如果把UIView的opaque设置成YES, 就会出现黑色的边. 不知道有什么办法可以避免这个问题又能得到最高性能.
6.队列和线程
1)优点:
1.代理在自定义控件方面具有其绝对的优势(AFN)
2.在一个控制器中可以定义定义多个不同的协议,每个协议有不同的delegates;
3.非常严格的语法。所有监听到的事件必须是在delegate协议中有清晰的定义。
2)缺点:
1.需要定义很多的代码;1)协议定义;controller的delegate属性;3)在delegate中实现delegate方法
2在释放代理对象时需要小心的将delegate置为nil
应用:
控件比较多,接口比较多的时候;
2.通知的优缺点
1)优点:
1.不需要编写多少代码,实现比较简单
2.可以一对多,即:一个对象发出的通知,多个对象能够做出反应
2)缺点:
1;在释放注册的对象时,需要在通知中心取消注册;
2:在编译期不会检查通知是否能够被观察者正确的处理;
3:通知发出后,controller不能从观察者获得任何的反馈信息。
3.block的优缺点
优点:
1.Blocks 更清晰。比如 一个 viewController 中有多个弹窗事件,Delegate 就得对每个事件进行判断识别来源。而 Blocks 就可以在创建事件的时候区分开来了。这也是为什么现在苹果 API 中越来越多地使用 Blocks 而不是 Delegate。
缺点:
1.缺点是若你的响应部分处理不当,若多次返回,那么你的代码会乱套
场景:
适合BLOCK的显著特点,有明确的发起方和响应方,两者能配对需要紧密联系。如:网络请求。
4.ViewController生命周期
alloc -> initWithNibName -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> dealloc
5.给imageView图片设置圆角
1)在CALayer中设置cornerRadius属性
2) drawRect中使用UIBezierPath画一个圆角的path, 然后clip. 但是如果把UIView的opaque设置成YES, 就会出现黑色的边. 不知道有什么办法可以避免这个问题又能得到最高性能.
6.队列和线程
相关文章推荐
- p7-p8面试经验总结--拿到offer
- 扫清Android面试障碍--面试前的准备
- 我为什么“明目张胆”地和异乡好居撕逼?因为我是千千万万普通程序员的一名
- 【好程序员特训营】- 路新艺-Java设计模式之简单工厂模式
- 北漂程序员的笑与泪
- 这样投简历,99%没面试机会!
- 高效程序员秘籍(7):使用Diagram Designer快速绘制流程图、UML等图形
- Android面试必过——Android常见的问题
- PHP 程序员的技术成长规划
- 重载与重写的区别
- 程序员,我们都是夜归人
- 程序员,我们都是夜归人
- 程序员为什么热衷造轮子
- 机器学习常见算法个人总结(面试用)
- PHP程序员进阶学习书籍参考指南
- 程序员平时该如何学习来提升自己的技术
- C#基础知识面试题
- 面试问题收集
- 程序员的自我修养
- sql面试