2018年ios面试题

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

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

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

4. Full Text Search为什么快?

5. Kvo的底层原理是什么

6. Kvo子类重写父类的setter方法,子类的KVO方法会执行吗

7. KVC的底层原理是什么

8. 运行时的原理,都做了哪些事

9. 哪些情况下会用到runtime的方法交换

10. id 与NSObject,class的区别

11. delegate与通知,block的区别

12. copy 与strong的区别,什么时候用copy

13. assign与weak的区别

14. MRC与ARC的内存管理

15. 堆和栈的区别

16. 基本类型变量是存在堆区还是栈区

17. 对象调用方法的时候如何防止崩溃

18. isa指针问题

19. runloop是什么,怎么工作的

20. 介绍一下autoreleasepool

21. GCD与NSThread NSOPeration

22. 下载多张图片之后,再合成成一张图片,多线程实现方法

23. GCD的barrier  semaphore 理解

24. iOS的推送原理

25. APP的生命周期

26. Mian()函数之前做了哪些事

27. 响应者链介绍

28. 持久化存储方法

29. coreData与FMDB的区别

30. 如何快速的找到被点击的控件

31. UITableview的性能优化方法

32. 组件化开发的见解

33. 代码解耦优化怎么做

34. http的请求方式有哪些

35. http与socket的区别

36. 网络7层协议,http与socket  属于哪一层

37. http的错误代码  200  300  302 400 403 404 500

38. UIView与CALayer的区别

39. CALayer的子类有哪些

40. Layer的遮罩问题

41. Weak对象什么时候被释放

42. Swift的泛型,闭包介绍

43. Swift 的optional介绍

44. Swift的open public  private  fileprivate区别

45. Swift的guard 的用法

46. Swift 如何避免函数崩溃  do try  do catch

47. Swift 与oc的混编实现

48. Oc的静态库与framework区别

49. Oc的js交互方式有哪些

50. iOS 几个大版本的新特性

51. iOS 查找错误的方法有哪些

52. 如何避免循环引用问题

53. iOS 性能优化的措施

54. MVVM设计模式介绍

55. 视频 图片滤镜处理

56. Runtime是如何实现weak属性的

57. 为什么要用static修饰全局变量

58. 如何去访问一个私有变量

59. oc的多态

60. 设计模式有哪些

61. Git的一些操作命令

62. 深复制与浅复制

63. atomic代表线程安全吗

64. property的本质是什么

65. category添加属性如何实现

66. property的关键字有哪些,有什么作用

67. http get请求与post请求的区别

68. —block的用法

69. block里一定要用到weakself吗,什么时候不需要

70. UIButton的继承关系

71. view改变layer的frame,view的frame会改变吗?改变frame,layer会改变吗

72. 项目中网络请求是怎么做加密处理的?

你可能感兴趣的:(2018年ios面试题)