阿杰iOS

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

最近不安于现状,想换个高大上的岗位,于是投了一些简历,获得了一些面试机会。

整理一下面试中的一些问题,只是为了提醒自己,还有很多东西要学,学原理,而不仅是学应用。

当然也并不希望这些面试题,成为别人找工作的“小抄”。况且只是网上找找面试题,就指望获得一份好工作,也是不现实的。

以下我整理了一下最近碰到的一些问题,当然,面试中,也会涉及一些算法,网络等方面的问题,就不在此文中列出了。

  1. OC有哪些多线程方法(都会问,但不止于此,会继续深入提问,在这里不一一列出了。)
  2. 在UITablView的cell中,如果用NSTimer去更新视图的显示,在滚动过程中,更新能够生效吗,为什么。(我简单回答了不能,也说了Runloop相关的问题,但其实还是应该说的更全面一点,包括NSTimer用什么RunloopMode)
  3. 如何使用performSelector传递3个或以上个参数,用结构体吗。(到现在我也不懂这个梗在哪,也在网上搜了一下,都是自己实现performSelector方法,或是用NSArray之类的集合打包参数。这是这道题的本意吗?求能人给我解答)
  4. Delegate和Block的区别。(其实在我看来,Delegate是一种设计模式,Block是一种类似函数指针的实现。所以我就从回调方式和资源使用的角度回答了这个问题,不知道是否在点子上)
  5. 有1,2,3,4四个任务,全部执行完成后,执行任务5,怎么实现。(可以用GCD的group)
  6. 接上面的问题,如果1,2,3,4的任务的结果是异步的,如何保证执行顺序,比如异步网络请求。(这题我不知道gcd有没有什么方式能够直接支持,期待解答)
  7. block在需要修改外部的变量时,需要使用__block,那么__block的作用是什么,使用了__block有什么影响。如果修改的是基本数据类型,比如int,__block做了什么处理,如果是对象呢。(对基本类型用__block修饰,我没有回答得出来,后来学习了一下,但也未能理解透彻,还需要继续深入)
  8. 如何优化UITableView,使其更流畅。(cell复用就不用多说了,应该还有很多优化方法,比如:优化height计算方法,在数据组装时就计算并保存height;如果每个cell的布局都可能变化,则在数据组装时就计算出各个子视图的frame;优化图片加载时机;尽量使UIView的opaque为YES;等等其他一些方法)
  9. 如何做启动时间优化
  10. 性能优化有哪些点需要考虑
  11. 如何减少安装大小
  12. 如何定位异常Crash问题(现网Crash问题)。(Crash日志的分析?如何分析,请高人们指条路)
  13. UIView和CALayer的区别和联系(UIView接受事件响应;CALayer不接受事件,主要负责显示;UIView时CALayer的代理)。
  14. 线程间通信有哪些方式
  15. 有做过hotfix吗,用了什么技术,原理是什么。(JSPatch)
  16. 介绍一下MRC和ARC,区别是什么。是不是用了ARC就不用再手动release了。

以上很多问题,我并没有能很好很完整的解答,惭愧。

posted on 2016-11-18 00:32  阿杰iOS  阅读(200)  评论(0编辑  收藏  举报