最近准备换份工作,闲暇之余找来了一些好的面试题准备先预热一下:
判若两人(简书)的面试题:
1.说一下frame与bounds的区别
这道题能回答出两者参考坐标点的不同,应该就算通过了,frame是参考父视图坐标,bounds是参考自身坐标。给一个视图设置frame比如CGRect(x:10,y:10,width:100,height:100),则获取它的bounds是CGRect(x:0,y:0,width:100,height:100),如果设置它的bounds.origin = CGPoint(x:10,y:y:10),则它的子视图坐标系也会改变
2.你是怎么理解深拷贝和浅拷贝的?
深拷贝拷贝的是一块内存空间,浅拷贝拷贝的是指向内存中的地址
3.谈谈你对MVC/MVP/MVVM的理解,有在其基础上扩展的想法么?
SDWebImgae 用什么方式判断gif/png图片的?
自动释放池什么时候释放?
AFN为什么添加一条常驻线程?
简单叙述下KVC与KVO的实现原理?
什么是进程?什么是线程?iOS多线程有几种,你平常开发喜欢用那种?
GCD与NSOperation的区别,谁是最早推出的?
说一下属性nonatomic与atomic区别,atomic是绝对安全的吗?谈谈你的看法。
系统是怎样保证父类的类方法,在子类被调用?
说一下分类的实现原理,分类为什么会覆盖原类的方法?
说一下你对 id 的理解,你知道它的底层原理吗?
什么是链表,链表逆序怎么实现?
为什么HTTP连接的重用总是比新建连接性能要好?
谈谈Swift与OC的区别?
简单说一下Swift中的lazy?
简单说一下Swift中的fileprivate / private / public / open?
如何使用Swift 中的weak与unowned?
Swift 中的Any 与 AnyObject的区别?