iOS面试总结
纪录下面试的题目:
(1)某X:fail
共两面,过了第一面:
1,讲述下ARC原理,讲述下KVO原理,讲述下RGB在16位,32位下各颜色占的位数,为啥。讲述下transform的原理,讲下信号变换的原理,讲述下HTTPS,讲述下http滑动窗口的作用,/数据库中事务的问题/有实际用过吗/讲述下你们项目如何解耦的,JLRoutes的原理是啥,图片格式有几种,JPG格式为啥可以压缩/霍尔夫编码干啥的/写一个单例(注意别人可能会滥用啊,如何保证它是唯一的)
评语:知识大家都知道,关键是如何去用。
(2)某科:OK
共五面:一轮电话iOS,三轮iOS面试,一轮综合能力:
问题由简单到复杂:
a,说下ARC,说下Swlft,说下KVO原理,说下runloop,说下你用instruments检查内存问题的例子。
b,写了一段代码,让说下内存释放的时机。说下如何让APP在后台继续运行,APP很卡顿,如何优化,说下TableVIew你平常是如何优化的。UIviewController中有个Nstimer,到底谁强引用谁,谁负责释放Nstimer,释放时机是?
c,说下block的原理,三种block存放的位置,和之间的差别,你知道gunstep吗,你用过instruments吗,咋用的,解决了啥些问题。数据在内存中的存放位置讲下,内存占有居高不下如何解决。页面卡的原因是?讲下SDWebImage原理和框图,讲下网络缓存的整个流程,你觉得apple关于NSAutoReleasePool原理的实现为何是那样实现的。
d,写个Block,写个双向链表。写个快速排序。copy属性的原理和用法。
e,作为一个高级开发人员,你一定有许多总结了/给讲讲/如果公司安排你开发MAC程序,你是如何想的。
(3)某里:OK
一轮笔试,一轮iOS面试,一轮综合面试,
笔试题量较大:关于内存管理的/设计一个缓存系统/设计一个多线程下载系统的设计,并写出关键代码/阐述下APNs等。
iOS面试:照着笔试题目问。
画下具体的APNs,画下SDWebImage的框图,关于约束的问题,关于copy,mutableCopy,NSArray,NSMuableArray的问题,AutoReleasePool的问题。关于protocol中optional和requred的问题。