2019 iOS 面试题大全(补充完整版)

71字数 3398阅读 59355

原文地址:2018 iOS 面试题大全
由于原作者并没有继续更新,这里我转过来继续更新下

整理的一些iOS面试相关问题,持续更新,敬请关注

2018 iOS面试题大全---全方面剖析面试
1、2018 iOS面试题---UI相关:事件传递,图像显示,性能优化,离屏渲染
2、2018 iOS面试题---Objective_C语言特性相关问题
3、2018 iOS面试题---runtime相关
4、2018 iOS面试题---算法相关
5、2019 iOS面试题-----内存管理、自动释放池与循环引用
6、2019 iOS面试题-----Block原理、Block变量截获、Block的三种形式
7、2019 iOS面试题-----进程、线程、多进程、多线程、任务、队列、NSThread、GCD、NSOprationQueue...
8、2019 iOS面试题-----多线程相关之GCD、死锁、dispatch_barrier_async、dispatch_group_async、Dispatch Semaphore
9、2019 iOS面试题-----多线程相关之NSOperation、NSOperationQueue、NSThread+runloop实现常驻线程、加锁
10、2019 iOS面试题-----RunLoop数据结构、RunLoop的实现机制、RunLoop的Mode、RunLoop与NSTimer和线程
11、2019 iOS面试题-----网络相关之HTTP协议
12、2019 iOS面试题-----网络相关之HTTPS、对称加密、非对称加密
13、2019 iOS面试-----一个基于UDP的简单的聊天Demo(用C语言、python、GCDAsyncUdpSocket来实现UDP通信)
14、2019 iOS面试题-----网络相关之UDP的特点、UDP的报文结构及差错检测
15、2019 iOS面试题-----网络相关之TCP、三次握手、四次挥手
16、2019 iOS面试题-----网络相关之TCP进阶:可靠数据传输、流量控制(滑动窗口)、拥塞控制
17、2019 iOS面试题-----网络相关之DNS
18、2019 iOS面试题-----网络相关之Cookie和Session
19、2019 iOS面试题-----网络相关之IP协议、IP数据报分片、IPv4编址、网络地址转换(NAT)
20、2019 iOS面试题-----网络相关之IPv6、从IPv4到IPv6的迁移

算法

1、七种常见的数组排序算法整理(C语言版本)
2、2019 算法面试相关(leetcode)--数组和链表
3、2019 算法面试相关(leetcode)--字符串
4、2019 算法面试相关(leetcode)--栈和队列
5、2019 算法面试相关(leetcode)--优先队列
6、2019 算法面试相关(leetcode)--哈希表
7、2019 算法面试相关(leetcode)--树、二叉树、二叉搜索树
8、2019 算法面试相关(leetcode)--递归与分治
9、2019 算法面试相关(leetcode)--贪心算法
10、2019 算法面试相关(leetcode)--动态规划(Dynamic Programming)
11、2019 算法面试相关(leetcode)--动态规划之背包问题


这个栏目将持续更新--请iOS的小伙伴关注!

1、iOS 应用导航模式有哪些?
2、iOS 中持久化方式有哪些?
3、iOS 单元测试框架有哪些?
4、iSO 7层协议,tcp四层协议及如何对应的?
5、iOS 你在项目中用过 runtime 吗?举个例子
6、iOS 什么是ARC?
7、iOS 说明并比较关键词:atomatic, nonatomic
8、iOS 说明并比较关键词:strong, weak, assign, copy
9、iOS 说明并比较关键词:__weak,__block
10、iOS 什么情况下会出现循环引用?

以上是原文给的答案,这里开始继续更新答案

11、iOS 类(class)和结构体(struct)有什么区别?
12、iOS 什么是KVO和KVC?他们的使用场景是什么?
13、iOS 通知和协议有哪些不同之处?
14、iOS 应用有哪些方式保存本地数据?他们都应用在哪些场景?
15、iOS 内存的使用和优化的注意事项?
16、iOS UIViewController的完整生命周期?
17、iOS 队列和多线程的使用原理?
18、iOS SQLite中常用的SQL语句?
19、iOS frame和bounds有什么不同?
20、iOS view的touch事件有哪些?
21、iOS 中的响应者链的工作原理?
22、iOS property属性的修饰符的作用?
23、iOS 对于Run Loop的理解?
24、iOS @synthesize、@dynamic的理解?
25、iOS 对瀑布流的理解?
26、iOS 单例模式理解与使用?
27、iOS 对沙盒的理解?
28、iOS 三方库SDWebImage原理?
29、iSO 网络七层协议?
30、iOS 如何进行网络消息推送?
31、iOS SVN的使用?
32、iOS 简述APP发布的上架流程?
33、iOS 如何进行真机调试?
34、iOS XML数据解析方式各有什么不同,JSON解析有哪些框架?
35、iOS ASIHttpRequest、AFNetWorking之间的区别?
36、iOS HTTP协议的特点,关于HTTP请求GET和POST的区别?
37、iOS Scoket连接和HTTP连接的区别?
38、iOS TCP连接的三次握手?
39、iOS TCP和UDP的区别与联系?
40、iOS Apple设备尺寸和编程尺寸?
41、iOS 线程与进程的区别和联系?
42、iOS 定时器与线程的区别?
43、iOS 使用block有什么好处?使用NSTimer写出一个使用block显示(在UILabel上)秒表的代码?
44、iOS 解决cell重用的问题?
45、iOS 怎样使用performSelector传入3个以上参数,其中一个为结构体?
46、iOS 解释self = [super init]方法?
47、iOS 在某个方法中 self.name = _name,name = _name 它 们有区别吗,为什么?
48、iOS Core Data的6成员对象?
49、iOS iOS 开发中数据持久性有哪几种?
50、iOS isMemberOfClass 和 isKindOfClass 联系与区别?
51、iOS @public、@protected、@private 它们的含义与作用?
52、iOS #include与#import的区别、**#import **与@class 的区别?
53、iOS static、self、super关键字的作用?
54、iOS NSNotification、Block、Delegate和KVO的区别?
55、iOS 代理的作用?
56、iOS 键路径(keyPath)、键值编码(KVC)、键值观察(KVO)?
57、iOS 循环引用的产生原因,以及解决方法?
58、iOS 类别的作用?
59、iOS 简述类目category优点和缺点?
60、iOS 简述内存管理基本原则?
61、iOS OC的理解与特性?
62、
63、
64、
65、
66、
67、
68、
69、
70、
71、
72、
73、
74、
75、
76、
77、
78、iOS 你在项目中用过 GCD 吗?举个例子
79、iOS Category 的实现原理,以及 Category 为什么只能加方法不能加属性?
80、iOS block 的原理,block 的属性修饰词为什么用 copy,使用 block 时有哪些要注意的?
81、iOS 的热更新方案有哪些?介绍一下实现原理?
82、iOS class A 继承 class B,class B 继承 NSObject。画出完整的类图?
83、iOS 细致地讲一下事件传递流程?
84、iOS main()之前的过程有哪些?
85、iOS Category 中有 load 方法吗?load 方法是什么时候调用的?load 方法能继承吗?
86、iOS 讲一下你对 iOS 内存管理的理解?
87、iOS 你在项目中是怎么优化内存的?
88、iOS 讲讲 RunLoop,项目中有用到吗?
89、iOS 列表卡顿的原因可能有哪些?你平时是怎么优化的?
90、iOS 项目有没有做过组件化?或者你是否调研过?
91、iOS 讲一下 OC 的消息机制?
92、iOS ARC 都帮我们做了什么?
93、iOS 实现 isEqual 和 hash 方法时要注意什么?
94、iOS 线程安全的处理手段有哪些?把你想到的都说一下?
95、iOS 说一下 OperationQueue 和 GCD 的区别,以及各自的优势?
96、iOS Swift 中 struct 和 class 的区别?
97、iOS Swift 是如何实现多态的?
98、iOS Swift 和 OC,各自的优缺点有哪些?
99、iOS 如果让你实现 NSNotificationCenter,讲一下思路?
100、iOS 如果让你实现 GCD 的线程池,讲一下思路?
101、iOS 为什么是三次握手?为什么是四次挥手?三次挥手不行吗?
102、iOS 讲一下 HTTPS 密钥传输流程?
103、iOS 讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
104、iOS 系统框架里使用了哪些设计模式?至少说6个?
105、iOS 你自己用过哪些设计模式?
106、iOS 哪一个项目技术点最能体现自己的技术实力?具体讲一下
107、iOS 你在项目中遇到的最大的问题是什么?你是怎么解决的?
108、iOS 用 Alamofire 比直接使用 URLSession,优势是什么?
109、你是如何学习 iOS 的?
110、iOS 和产品经理、测试产生冲突时,你是怎么解决的?
111、iOS 手写一下快排?
112、iOS 遍历一个树,要求不能用递归?
113、iOS 找出两个字符串的最大公共子字符串?
114、
115、
116、
117、
118、
119、
120、
121、
122、
123、
124、
125、
126、
127、
128、iOS 为什么说Objective-C是一门动态的语言?
129、iOS 进程和线程的区别?同步异步的区别?并行和并发的区别?
130、iOS 用StoryBoard开发界面有什么弊端?如何避免?
131、iOS GCD的一些常用的函数?(group,barrier,信号量,线程同步)?
132、iOS block的实质是什么?一共有几种block?都是什么情况下生成的?
133、iOS 为什么在默认情况下无法修改被block捕获的变量? __block都做了什么?
134、iOS 模拟一下循环引用的一个情况?block实现界面反向传值如何实现?
135、iOS 什么时候会报unrecognized selector错误?iOS有哪些机制来避免走到这一步?
136、iOS objc在向一个对象发送消息时,发生了什么?
137、iOS 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么
138、iOS runtime如何实现weak变量的自动置nil?
139、iOS 给类添加一个属性后,在类结构体里哪些元素会发生变化?
140、iOS runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?
141、iOS runloop的mode是用来做什么的?有几种mode?
142、iOS 苹果是如何实现Autorelease Pool的?
143、iOS 为什么把NSTimer对象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主运行循环以后,滑动scrollview的时候NSTimer却不动了?
144、iOS isa指针?(对象的isa,类对象的isa,元类的isa都要说)
145、iOS 运行时能增加成员变量么?能增加属性么?如果能,如何增加?如果不能,为什么?
146、iOS objc中向一个nil对象发送消息将会发生什么?(返回值是对象,是标量,结构体)
147、iOS UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)
148、iOS 有没有用过运行时,用它都能做什么?(交换方法,创建类,给新创建的类增加方法,改变isa指针)
149、iOS 看过哪些第三方框架的源码?都是如何实现的?(如果没有,问一下多图下载的设计)
150、iOS KVC的使用?实现原理?(KVC拿到key以后,是如何赋值的?知不知道集合操作符,能不能访问私有属性,能不能直接访问_ivar)
151、
152、
153、iOS UITableViewCell上有个UILabel,显示NSTimer实现的秒表时间,手指滚动cell过程中,label是否刷新,为什么?
154、iOS 有a、b、c、d 4个异步请求,如何判断a、b、c、d都完成执行?如果需要a、b、c、d顺序执行,该如何实现?
155、iOS 一个view已经初始化完毕,view上面添加了n个button,除用view的tag之外,还可以采用什么办法来找到自己想要的button来修改button的值?
156、iOS 浅复制和深复制的区别?
157、iOS MVC设计模式是什么? 你还熟悉什么设计模式?他们和MVC有什么不同的地方?
158、 iOS 内存管理的几条原则时什么?按照默认法则.哪些关键字生成的对象需要手动释放?在和property结合的时候如何有效的避免内存泄露?
159、iOS Objective-C如何对内存管理的,说说你的看法以及你遇到的问题以及解决方法?
160、iOS 以scheduledTimerWithTimeInterval的方式触发的timer,在滑动页面上的列表时,timer会暂停,为什么?该如何解决

推荐阅读更多精彩内容