一面
1.了解哪些设计模式
2.MVVM 解决什么问题
3.性能优化
4.内存管理的理解
autoreleasePool 的结构,一个 autoreleasePoolPage 的大小
5.weak 的原理
6.class 的结构,cache 的结构,bucket_t 的结构,方法查找的顺序,是逐个遍历吗?
7.关联对象存在哪里
8.Category 的加载流程
9.Runtime 的应用,动态方法解析里返回 YES,但是并没有添加方法,会怎么样?
10.三次握手与四次挥手,四次挥手后会立马断开连接吗
11.Swift 解包方式
12.Swift 中计算属性和存储属性的区别
13.Swift 类和结构体的区别,使用属性的写法上的区别
14.数组和链表的区别
15.快速排序,快排时间复杂度
二面
介绍项目
1.webView 与 H5 交互,拦截协议 url 有长度限制,有安全问题,可能会被抓包,JSBridge
2.埋点
埋点保存/删除数据的时机
内存里的最大容量,收到内存警告
上报网络请求发送失败后的处理,埋点的补偿机制
3.支付
4.页面 A push B A willDisappear didDisappear B willAppear didAppear 的执行顺序
5.Person 类继承自 NSObject 类,没有实现 age 方法。两个实例 p1,p2,怎么让 p1 响应 age 方法,p2 不响应 age 方法。
6.消息发送机制和消息转发。
7.KVO 的实现原理
8.多个分类实现了同一个方法,查找顺序
9.Swift 的 String 为什么设计成值类型?
安全,copy,快速
10.设计 LRU 最近最少使用