前言
*近把各个大厂的 iOS面试题整理了, 题目大部分是网上收录的, 方便自己巩固复习, 也分享给大家; 希望对大家有所帮助!

此次iOS面试题 ,底部会提供一份答案
题集大全
1: 谈谈你对KVC的理解

2: iOS项目中引用多个第三方库引发冲突的解决方法

3: GCD实现多读单写

4: 讲一下atomic的实现机制;为什么不能保证*对的线程安全?

5: Autoreleasepool所使用的数据结构是什么?

6: AutoreleasePoolPage结构体了解么?

7: iOS中内省的几个方法?

8: class方法和objc_getClass方法有什么区别?

9: 分类和扩展有什么区别?可以分别用来做什么?

10: 分类有哪些局限性?分类的结构体里面有哪些成员?

11: 能不能简述一下Dealloc的实现机制

12: HTTPS和HTTP的区别

13: TCP为什么要三次握手,四次挥手?

14: 对称加密和非对称加密的区别?分别有哪些算法的实现?

15: HTTPS的握手流程?为什么密钥的传递需要使用非对称加密?双向认证了解么?

16: 如何用Charles抓HTTPS的包?其中原理和流程是什么?

17: 什么是中间人攻击?如何避免?

18: 了解编译的过程么?分为哪几个步骤?

19: 静态链接了解么?静态库和动态库的区别?

20: App网络层有哪些优化策略?

21: 排序题︰冒泡排序,选择排序,插入排序,快速排序(二路,三路)能写出那些?

22: iOS开发中的加密方式

23: App安全,数字签名,App签名,重签名

24: OC数据类型

25: property和属性修饰符

26: 成员变量ivar和属性property的区别,以及不同关键字的作用

27: 类簇的优缺点

28: 谈谈设计模式

29: 谈谈架构设计

30: ReactiveCocoa的使用及优缺点

31: 类的继承,类能否多继承,协议能不能做继承?

32: 分类(category)和类扩展(extension)的区别

33: 如何实现week

34: 字典注意事项:setvalue和setobject的区别

35: 多线程和锁

36: WebSocket与TCP Socket的区别

37: 事件传递和响应机制