iOS常见面试题

1. notification 是同步还是异步,和 delegate 相比有什么区别,效率呢?
2. 关键字 static const 的作用
3. 至少写出五种常用的设计模式,说说他们在什么情况下会用到?
4. UIView 和 CALayer 的区别?
5. 简述事件传递和响应者链?
6. 你在项目中用过哪些数据持久化的方法,并说明为什么用这个?
7. import 跟#include、@class 有什么区别?#import<> 跟 #import“”又什
么区别?
8. 属性 readwrite,readonly,assign,retain,copy,nonatomic 各是什么作
用,在那种情况下用?
9. 谈谈对 KVO, 和 KVC 的理解?
10. 如何让属性不被监听?
11. 制作.a 静态库 SDK 和使用.a 静态库?
12. 谈谈什么是”懒加载”, 应用场景是什么?
13. 如果使用 sqlite, 大批量的插入数据, 需要做哪些优化?
14. 简述UITableView的重用机制?遇到tableView卡顿嘛?会造成卡顿的原
因大致有哪些?
15. 什么是沙箱模型?哪些操作是属于私有api范畴?
16. self.跟self->什么区别?
17. 简述@protected,@private,@public,@package,@dynamic各有什么含义作
用?
18. iOS平台怎么做数据的持久化?coredata和sqlite有无必然联系?coredata是
一个关系型数据吗?
19. Object-c的类可以多重继承么?可以实现多个接又么?category是什么?重写
一个类的方式用继承好还是分类好?为什么?
20. 描述面向对象的三大特征,并作简单的介绍。
21. 如何实现APP的本地化?
22. 有没有写过自定义的控件?
23. runloop和线程有和关系?
24. assign 的内存管理语义,MRC 用的时候会有循环引用吗?
25. OC你了解的锁有哪些?自旋和互斥对比?用C/OC/C++,任选其一,
实现自旋或互斥?
26. 内存泄漏可能会出现的几种原因,聊聊你的看法?非OC对象如何处
理?地图类内存若泄漏,如何处理?
27. 我们说的oc是动态运行时指的是什么意思?
28. block本质是什么?
29. weak 为什么能解除循环引用?
30. Objective-C 的优缺点
31. int 与 integer 的区别?
32. AFN和ASI分析、图片下载分析。
33. 如何访问并修改一个类的私有属性?
34. 进程和线程的区别
35. 成员内部、静态内部类、局部内部类和匿名内部类的理解,以及项目中
的应用
36. 堆和栈在内存中的区别是什么(解答提示:可以从数据结构方面以及实际
实现方面两个方面去回答)?
37. 什么是深拷贝和浅拷贝
38. 手写链表逆序代码
39. 讲一下对树,B+树的理解
40. 讲一下对图的理解
41. 判断单链表成环与否?
42. 链表翻转(即:翻转一个单项链表)
43. 合并多个单有序链表(假设都是递增的)
44. 什么导致线程阻塞?
45. 为什么要有线程,而不是仅仅用进程?
46. 线程池有没有上限?

47. 点击事件被拦截,但是想传到下面的View,如何操作?
48. 图片库的源码分析
49. 图片框架缓存实现
50. 图片加载原理
51. 网络框架对比和源码分析
52. 自己去设计网络请求框架,怎么做?
53. 从网络加载一个10M的图片,说下注意事项
54. TCP与UDP的区别
55. TCP与UDP的应用
56. HTTP 协议,1.0 2.0
57. HTTP与HTTPS的区别以及如何实现安全性
58. https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)
等是否有了解?
59. client如何确定自己发送的消息被server收到?
60. 谈谈你对WebSocket的理解
61. WebSocket与socket的区别
62. 请解释安卓为啥要加签名机制?
63. App 是如何沙箱化,为什么要这么做?
64. 数据库框架对比和源码分析
65. 多用户机制如何设计数据库?
66. 项目组件化的理解
67. 谈谈你对Android设计模式的理解
68. MVC MVP MVVM 原理和区别
69. 你所知道的设计模式有哪些?
70. 项目中常用的设计模式
71. 手写生产者/消费者模式
72. 写出观察者模式的代码
73. 适配器模式,装饰者模式,外观模式的异同?
74. 用到的一些开源框架,介绍一个看过源码的,内部实现过程。

75. 从0设计一款App整体架构,如何去做?
76. 对于应用更新这块是如何做的?(解答:灰度,强制更新,分区域更新)?
77. 实现一个Json解析器(可以通过正则提高速度)
78. 统计启动时长,标准
79. 启动太慢怎么解决?
80. 怎么保证应用启动不卡顿?
81. App启动崩溃异常捕捉
82. 自定义View注意事项
83. 现在下载速度很慢,试从网络协议的角度分析原因,并优化(提示:网络的5
层都可以涉及)。
84. Https请求慢的解决办法(提示:DNS,携带数据,直接访问IP)
85. 进程和 Application 的生命周期?
86. 内存对象的循环引用及避免
87. 大体说清一个应用程序安装到手机上时发生了什么
88. 消息转发机制原理?
89. 如果让你实现 NSNotificationCenter,讲一下思路
90. Category 的实现原理,以及 Category 为什么只能加方法不能加实例变量
91. 如果让你实现 GCD 的线程池,讲一下思路
92. 什么时候用delegate,什么时候用Notification?
93. 对 KVO, 和 KVC 的理解,底层实现
94. 你是否接触过OC中的反射机制?简单聊一下概念和使用
95. 如何对iOS设备进行性能测试?
96. 开发项目时你是怎么检查内存泄露
97. 如何访问并修改一个类的私有属性?
98. 一个objc对象的isa的指针指向什么?有什么作用?
99. 多个网络请求并发执行的解决方案
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值