前言
- 当您准备进行技术性iOS面试时,了解您可能会询问哪些主题以及经验丰富的iOS开发人员期望什么是非常重要的。 这是许多硅谷公司用来衡量iOS候选人资历水平的一系列问题。
- 这些问题涉及iOS开发的各个方面,旨在触及对平台的广泛理解。 毕竟,高级开发人员应该能够从头到尾地发布完整的iOS产品。
- 这绝不是一个详尽的列表,但它可以帮助您为即将到来的技术iOS面试做准备。
- 你需要放下自己的主观判断和最重要的东西
仔细聆听。
- 你使用的最新版本的iOS是什么?你喜欢什么,为什么?
- 什么是iOS应用程序,您的代码适合哪里?
- 你喜欢或不喜欢什么Swift特性?为什么?
- 内存管理在iOS上如何处理?
- 你对单身人士有什么了解?你会在哪里使用一个,你不在哪里?
- 你能否解释一下Delegate和KVO有什么不同?
- iOS应用中通常使用哪些设计模式?
- 你知道除了常见的可可模式外还有哪些设计模式?
- 你能否解释并展示SOLID原则的例子?
- 你有什么选择在iOS上实现存储和持久性?
- 你有什么选择在iOS上实现网络和HTTP?
- 如何以及何时需要在iOS上序列化和映射数据?
- 在iOS上布置UI有什么选择?
- 你将如何优化动态大小的表或集合视图的滚动性能?
- 你将如何在iOS上执行异步任务?
- 你如何管理依赖关系?
- 你如何在iOS上调试和配置文件?
- 你有TDD经验吗?你如何在iOS上进行单元和UI测试?
- 你编码审查和/或配对计划?
- 如何令⾃⼰所写的对象具有拷⻉功能?
- 说说你理解weak属性?
- Swift mutating关键字的使⽤?
- UIView和 CALayer是什么关系?
- 下⾯的代码输出什么?
- @synthesize 和 @dynamic 分别有什么作⽤?
- 动态绑定
- Category(类别)、 Extension(扩展)和继承的区别
- 为什么代理要⽤weak?代理的delegate和dataSource有什么区别?block和代理的区别?
- id和NSObject*的区别
- 如何令⾃⼰所写的对象具有拷⻉功能?
- 使⽤系统的某些block api(如UIView的block版本写动画时),是否也考虑引⽤循环问题?
- ⽤@property声明的NSString(或NSArray,NSDictionary)经常使⽤copy关键字,为什么?如果改⽤strong关键字,可能造成什么问题?
- UIView和 CALayer是什么关系?
- static有什么作⽤?
底层:
- main()之前的过程有哪些?
- KVO基本原理?
- Swift 下的如何使⽤ KVC?
- Swift有哪些模式匹配?
- objc在向⼀个对象发送消息时,发⽣了什么?
- 静态库的原理是什么?你有没有⾃⼰写过静态编译库,遇到了哪些问题?
- runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?⼦线程呢?
- 不⼿动指定autoreleasepool的前提下,⼀个autorealese对象在什么时刻释放?
- ⽐如在⼀个vc的viewDidLoad中创建
- 不⼿动指定autoreleasepool的前提下,⼀个autorealese对象在什么时刻释放?
- (⽐如在⼀个vc的viewDidLoad中创建)
- OC完整的消息转发机制+代码实现【暴击】
- 以+ scheduledTimerWithTimeInterval...的⽅式触发的timer,在滑动⻚⾯上的
- 列表时,timer会暂定回调,为什么?如何解决?
- 如何⼿动触发⼀个value的KVO
- 如何对定位和分析项⽬中影响性能的地⽅?以及如何进⾏性能优化?
- 串⾏并⾏,异步同步的区别?
- 线程是什么?进程是什么?⼆者有什么区别和联系?
- RunLoop是什么?
- 假设有⼀个字符串aabcad,请写⼀段程序,去掉字符串中不相邻的重复字符
- 串,即上述字符串处理之后的输出结果为:aabcd
- @autoclosure(⾃动闭包)
- iOS app启动如何优化?
- swift⾯试题:
- 怎样防⽌反编译?
- UITableView性能优化,超实⽤
线程:
- 不要阻塞主线程
- 谈谈你对多线程开发的理解?ios中有⼏种实现多线程的⽅法?
- 进程和线程的区别?同步异步的区别?并⾏和并发的区别?
- ViewController⽣命周期
- iOS 中的多线程
- 内存管理的⼏条原则时什么?按照默认法则.那些关键字⽣成的对象需要⼿动释放?在和property结合的时候怎样有效的避免内存泄露?谁申请,谁释放
- dispatch_barrier_async的作⽤是什么?
- 如何⽤GCD同步若⼲个异步调⽤?(如根据若⼲个url异步加载多张图⽚,然后在都下载完成后合成⼀张整图)
http:
- http与https的区别?
- 服务器能否知道APNS推送后有没有到达客户端的⽅法?
app:
- 什么⽅式可以看到上架App的头⽂件?
- 阅读过哪些框架的源码?能说说它的架构⽅式吗
- iOS iAP内购审核可能失败的问题
- IAP内购中虚拟货币导致审核⽆法通过的问题?
这些全部是题目跟类目,每个题目都会有相对的答案,由于字数太多所以我整理出一个文档,
需要这份面试文档的转发+私信:iOS即可免费获取