12年开始工作到现在差不多做了6年的ios开发,突然又去面试了,感觉被虐的很惨,一到问题就懵逼,连最简单的问题都回答的语无伦次,自己都不知道在说什么,被鄙视之后惨遭离开,出门就想到了该怎么回答,然而机会不会有下次了,主要还是缺乏总结,基础忘得差不多了,什么数据结构、计算机网络都统统还给了老师。
言归正传,还是说说面试遇到的各自问题吧,到现在差不多经历了10场面试,基本上技术都不达标的,每个面试官问的问题都不一样,或偏前沿、或偏底层、或者就揪着某个技术点一直深挖,有时候回答的连自己都怀疑人生了,我可能是个假的程序猿。
虽然都拿“面试造火箭,工作拧螺丝”来自我安慰,然而有些技术点确实是自己没有深究,还是停留在很浅的层面上。下面是一些面试问题点:
1.MVC、MVVM框架的区别,除了这些还了解什么框架?RAC有了解吗?
2.GCD的几种使用场景,遇到哪些坑?线程间的通讯、信号量有了解吗?假如有A、B、C三个线程,C线程要在A、B线程执行之后采取执行,怎么实现?
3.如何理解响应者链?有一个viewA上面放一个Btn,Btn事件是怎么传递的,有没有遇到btn点击事件不起作用的情况(关联、enable等都是对的,btn也没有超出view)
4.UIview和CALayer的区别是什么?
5.initialize和load的区别?
6.HTTP、TCP/IP、UDP、socket、xmpp区别,http中get和post的区别,不要简单的回答用法。
7.遇到哪些crash的情况,怎么解决的。
8.内存泄露的情况,ARC和MRC,平时开发都注意哪些?
9.除了代理模式还有用到哪些设计模式,都哪些地方用了单例,为什么要用单例?懒加载不行吗?
10.weak的使用场景,block循环引用怎么解决,为什么会导致循环引用。
11.自定义一个省市联动的键盘弹出控件(就是picker)说说怎么做的。
12.SDwebImage的原理,如果让你自己实现该功能,说说你的思路。
13.AFNetworking和ASI的区别,NSURLConnection和NSURLSession。
14.runtime、runloop理解和用法。
15.说说对面向对象的理解,OC支持多继承吗,为什么不支持多继承?如何实现多继承。
16.layoutsubviews在什么情况下调用?
17.都知道哪些算法,原理是什么?(这个问题直接把我干倒了,实际开发中都没怎么用到,所以都不关注的,哎)
18.说说你开发过程中遇到哪些问题,或者说觉得哪些地方是自己认为做的比较好的地方。为什么觉得这样写好呢?(又懵逼了,遇到很多问题啊,最后也解决了,就是缺乏总结)
19.待补充