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

原文地址: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会暂停,为什么?该如何解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,092评论 1 32
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,339评论 8 265
  • OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...
    奇异果好补阅读 4,259评论 0 11
  • iOS面试题目100道 1.线程和进程的区别。 进程是系统进行资源分配和调度的一个独立单位,线程是进程的一个实体,...
    有度YouDo阅读 29,891评论 8 137
  • “我可以这样理解吗?……” 这是我们公司运营经理陈'r和我前任上司柯总监经常说的一句话,也可以称之为口头禅。 初次...
    礼尚往来可好阅读 814评论 0 1