面试题的分享


1.说一下frame与bounds的区别?
2.你是怎么理解深拷贝和浅拷贝的?
3.谈谈你对MVC/MVP/MVVM的理解,有在其基础上扩展的想法么?
4.SDWebImgae 用什么方式判断gif/png图片的?
5.自动释放池什么时候释放?
6.AFN为什么添加一条常驻线程?
7.简单叙述下KVC与KVO的实现原理?
8.什么是进程?什么是线程?iOS多线程有几种,你平常开发喜欢用那种?
9.GCD与NSOperation的区别,谁是最早推出的?
10.说一下属性nonatomic与atomic区别,atomic是绝对安全的吗?谈谈你的看法。
11.系统是怎样保证父类的类方法,在子类被调用?
12.说一下分类的实现原理,分类为什么会覆盖原类的方法?
13.说一下你对 id 的理解,你知道它的底层原理吗?
14.什么是链表,链表逆序怎么实现?
15.为什么HTTP连接的重用总是比新建连接性能要好?
16.谈谈Swift与OC的区别?
17.简单说一下Swift中的lazy?
18.简单说一下Swift中的fileprivate / private / public / open?
19.如何使用Swift 中的weak与unowned?
20.Swift 中的Any 与 AnyObject的区别?

昨天的你的现在的未来2017-05-17 10:02:52
个人无百度尝试回答一下,请指教
1、frame是根据父控件的,bounds是根据自己的
2、有无新对象产生
3、MVP没怎么用过,不谈,MVC就是把Controller、View和model分开,缺点是业务逻辑多会有一个臃肿的控制器,mvvm就是把model、view、viewmodel分开,好处是可以把业务逻辑、网络请求等扔进viewmodel,简化controller的代码,mvc和mvvm优点结合一下我觉得挺好
4、5、忘了
6、afn常驻线程个人理解是有一个不释放的线程,那么可以保证我先请求的网络没有请求完之前,阻塞后边的网络请求,不去执行,如果我网络不好的时候,一堆请求都没加载出来,突然网络好了,请求并发完成,很可能对性能造成影响(当然,我没试过 )
7、说的再多没有百度说的好
8、进程是程序,是线程的容器,进程最少拥有一个线程,所有线程共享该进程资源;iOS线程3种,nstheard打印偶尔用,nsoperationqueue一般不用,只用过一次线程的依赖,gcd用的多,比如getmainqueue,比如开临时线程和常驻线程
9、nsoperationqueue是gcd的封装,那么gcd先出,gcd好用,方便,nsoperationqueue有依赖关系等
10、忘了,复习去,只记得int这些atomic和nonatomic没区别
11、不会
12、13、14、看过,只是看过,百度更详细
15、好像是有慢启动的特性,三次握手也慢
16、swift更像java,用惯了真的不想用oc了。。区别不知道,我知道的也就可选项这些吧
17、swift中的懒加载是真的只执行一次,他是一个闭包,一开始为nil,当调用时执行闭包,当不为nil时,不执行闭包
18、百度吧,我要下班了
19、解除循环引用时使用[weak self],或者[unowned self],unowned好像有什么缺点,忘了,一般使用weak self
20、百度,我要下班了

你可能感兴趣的:(面试题的分享)