几道面试小题

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.队列和线程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值