一份"有点难"的iOS面试题

之前一时兴致在知乎上出过一份iOS的中级面试题,引起一些关注,不少同学表示对”隐藏关卡“感兴趣。升级版iOS面试题来了,目测难倒90%iOS程序员,目测一大波程序员撸着袖子在靠近。每道题都不难,对知识广度有要求,请摸着良心回答,不要百度。

声明:这份面试题和iOS程序员本身技术水平没任何关联,无论你能否全部答出,都不要对自己产生任何正面或消极的评价,权当做闲暇之余的消遣。

1.NSString如何计算字符的个数?

2.PKI体系当中加密和签名有什么区别?

3.如何自己高效实现NSUserDefault?

4.解释下tcp的慢启动特性。

5.如何用HTTP实现长连接?

6.HTTP2.0针对同一个域名的多个请求,会建立多少个tcp连接?

7.数据库建表的时候索引有什么用?

9.iOS下如何实现指定线程数目的线程池?

10.介绍下iOS设备获取唯一设备号的历史变迁。

11.函数式编程当中的 first-class function是什么意思呢?

12.如何使用runtime hook一个class的某个方法,又如何hook某个instance的方法?

13.谈下Objective C都有哪些锁机制,你一般用哪个?

14.聊下HTTP post的body体使用form-urlencoded和multipart/form-data的区别。

15.让你设计一种机制检测UIViewController的内存泄漏,你会怎么做?

16.通过[UIImage imageNamed:]生成的对象什么时候被释放?

17.applicationWillEnterForeground和applicationDidBecomeActive都会在哪些场景下被调用?举例越多越好。

18.如何终止正在运行的工作线程?

19.穷举iOS下所有的本地持久化方案。

20.如果公司强制996,你有什么心里话要对老板说吗?

如果挑战的朋友数量多,后面我会抽空公布自己的答案:)。

欢迎关注公众号: