腾讯1面
1.做一个自我介绍
2.说下项目里面核心的东西
3.进入问答环节
4.根据我的介绍有直播,长连接,问我长连接用的什么框架
5.tableView复用的原理
6.线程同步怎么实现
7.富文本用过吗?我说webView 和 yylabel ,就开始问我yylabel 实现原理
8.tcp,udp 原理,为什么udp更快(我一下想不起来为什么更快,好基础)
9.内存泄漏怎么检测,具体在哪里泄漏(我说用检测工具的使用)
10.runloop模式,我就说了一个例子tableView滑动时候如果有定时器会触发tracking模式 这里要做切换成command模式 默认是default模式
11.堆栈原理,(我说了内存泄漏的原理同时抛出堆栈原理)
腾讯二面
阿里一面
1.MVC具有什么样的优势,各个模块之间怎么通信,比如点击 Button 后 怎么通知 Model?
2.两个无限长度链表(也就是可能有环) 判断有没有交点
3.UITableView的相关优化
4.KVO、Notification、delegate各自的优缺点,效率还有使用场景
5.如何手动通知KVO
6.Objective-C 中的copy方法
7.runtime 中,SEL和IMP的区别
8.autoreleasepool的使用场景和原理
9.RunLoop的实现原理和数据结构,什么时候会用到
10.block为什么会有循环引用
11.有没有自己设计过网络控件? 12.NSOperation和GCD的区别
12.CoreData的使用,如何处理多线程问题
13.如何设计图片缓存?
14.有没有自己设计过网络控件?
阿里 二面
1. 怎么判断某个 cell 是否显示在屏幕上
2. 进程和线程的区别
3. TCP 与 UDP 区别
4. TCP 流量控制
5. 数组和链表的区别
6. UIView 生命周期
7. 如果页面 A 跳转到 页面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪个先调用?
8. block 循环引用问题
9. ARC 的本质
10. RunLoop 的基本概念,它是怎么休眠的?
11. Autoreleasepool 什么时候释放,在什么场景下使用?
12. 如何找到字符串中第一个不重复的字符
13. 哈希表如何处理冲突
阿里 三面
1.dSYM你是如何分析的?
2.多线程有哪几种?你更倾向于哪一种?
3.单例弊端?
4.如何把异步线程转换成同步任务进行单元测试?
5.介绍下App启动的完成过程?
6.比如App启动过慢,你可能想到的因素有哪些?
7.0x8badf00d表示是什么?
8.怎么防止反编译?
9.说说你遇到到的技术难点?
10.说说你了解的第三方原理或底层知识?
网易一面iOS:
1.你一般学习iOS是如何学习的?
2.app内存你是如何分析的?
3.用过 TableView 吗,平时怎么解决 TableView 滑动卡顿问题的?
4.网络模型了解么?有哪几种?说说你的看法?
5.block本质是什么?
6.KVC机制是如何通过key找到value。
7.说说你最熟悉的第三方,知晓其原理么?