整理的一些iOS面试相关问题,持续更新,敬请关注
1、2018 iOS面试题---UI相关:事件传递,图像显示,性能优化,离屏渲染
2、2018 iOS面试题---Objective_C语言特性相关问题
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进阶:可靠数据传输、流量控制(滑动窗口)、拥塞控制
18、2019 iOS面试题-----网络相关之Cookie和Session
19、2019 iOS面试题-----网络相关之IP协议、IP数据报分片、IPv4编址、网络地址转换(NAT)
20、2019 iOS面试题-----网络相关之IPv6、从IPv4到IPv6的迁移
算法
2、2019 算法面试相关(leetcode)--数组和链表
7、2019 算法面试相关(leetcode)--树、二叉树、二叉搜索树
8、2019 算法面试相关(leetcode)--递归与分治
10、2019 算法面试相关(leetcode)--动态规划(Dynamic Programming)
11、2019 算法面试相关(leetcode)--动态规划之背包问题
这个栏目将持续更新--请iOS的小伙伴关注!
7、iOS 说明并比较关键词:atomatic, nonatomic
8、iOS 说明并比较关键词:strong, weak, assign, copy
以上是原文给的答案,这里开始继续更新答案
11、iOS 类(class)和结构体(struct)有什么区别?
14、iOS 应用有哪些方式保存本地数据?他们都应用在哪些场景?
16、iOS UIViewController的完整生命周期?
24、iOS @synthesize、@dynamic的理解?
25、iOS 对瀑布流的理解?
27、iOS 对沙盒的理解?
29、iSO 网络七层协议?
31、iOS SVN的使用?
34、iOS XML数据解析方式各有什么不同,JSON解析有哪些框架?
35、iOS ASIHttpRequest、AFNetWorking之间的区别?
36、iOS HTTP协议的特点,关于HTTP请求GET和POST的区别?
43、iOS 使用block有什么好处?使用NSTimer写出一个使用block显示(在UILabel上)秒表的代码?
45、iOS 怎样使用performSelector传入3个以上参数,其中一个为结构体?
46、iOS 解释self = [super init]方法?
47、iOS 在某个方法中 self.name = _name,name = _name 它 们有区别吗,为什么?
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)?
58、iOS 类别的作用?
62、
63、
64、
65、
66、
67、
68、
69、
70、
71、
72、
73、
74、
75、
76、
77、
79、iOS Category 的实现原理,以及 Category 为什么只能加方法不能加属性?
80、iOS block 的原理,block 的属性修饰词为什么用 copy,使用 block 时有哪些要注意的?
82、iOS class A 继承 class B,class B 继承 NSObject。画出完整的类图?
85、iOS Category 中有 load 方法吗?load 方法是什么时候调用的?load 方法能继承吗?
89、iOS 列表卡顿的原因可能有哪些?你平时是怎么优化的?
93、iOS 实现 isEqual 和 hash 方法时要注意什么?
94、iOS 线程安全的处理手段有哪些?把你想到的都说一下?
95、iOS 说一下 OperationQueue 和 GCD 的区别,以及各自的优势?
96、iOS Swift 中 struct 和 class 的区别?
99、iOS 如果让你实现 NSNotificationCenter,讲一下思路?
100、iOS 如果让你实现 GCD 的线程池,讲一下思路?
101、iOS 为什么是三次握手?为什么是四次挥手?三次挥手不行吗?
103、iOS 讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
105、iOS 你自己用过哪些设计模式?
106、iOS 哪一个项目技术点最能体现自己的技术实力?具体讲一下
107、iOS 你在项目中遇到的最大的问题是什么?你是怎么解决的?
108、iOS 用 Alamofire 比直接使用 URLSession,优势是什么?
109、你是如何学习 iOS 的?
110、iOS 和产品经理、测试产生冲突时,你是怎么解决的?
111、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会暂停,为什么?该如何解决
作者:Theendisthebegi
链接:https://www.jianshu.com/p/d884f3040fda
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。