高级iOS开发面试技能概要
2019-05-26 本文已影响0人
095b62ead3cd
技能要求
1、UI视图
- UITableView:
1. 重用机制的理解与运用;
2. 使用过程中对数据源的多线程操作;
3. 数据源的同步;
- 事件传递&视图响应
- 图像显示原理
- UI卡顿、掉帧
- UI绘制原理、异步绘制解决原理
- 离屏渲染
2、OC语言
- 分类:
1. 实现机制与原理;
2.怎样为分类添加实例变量;
- 关联对象
- 扩展、代理
- KVO、KVC系统的实现机制与原理,里面涉及到了哪些设计思想
- NSNotification 实现机制是什么
- 属性关键字
3、Runtime
- 对象、类对象、元类对象的理解,它们之间的关系
- 消息的传递机制
- 消息的转发流程
- 方法缓存
- Method-Swizzling实际运用
- 动态添加方法
4、内存管理
- ARC
- MRC
- 引用计数原理
- 弱引用表
- AutoReleasePool实现机制与原理
- 循环引用
5、Block
- Block的本质
- 截获变量特性
- __block修饰符的本质
- Block的内存管理
- 循环引用
6、多线程
- GCD
- NSOperation/NSOperationQueue
- NSThread
- 线程同步、资源共享问题,解决了哪些问题
- 互斥锁、自旋锁、递归锁等
7、Runloop
- 什么是Runloop
- Mode/Source/Timer/Observer
- 事件循环机制
- Runloop与NSTimer的关系,使用NSTimer的时候怎么考虑它们之间的关系,包括Runloop所带来的影响
- Runloop与线程之间的关系
- 如何使用Runloop实现一个常驻线程
8、网络
- HTTP协议,GET与POST有什么区别
- HTTPS的连接建立流程,与网络安全的关系
- TCP连接建立的三次握手,四次挥手
- UDP与长连接之间的联系与关系
- DNS解析
- Session、Cookie
9、设计模式
- 六大设计原则
- 责任链
- 桥接
- 适配器
- 单例
- 命令
10、架构、框架
- 图片缓存框架
- 时长统计框架
- 复杂页面架构
- 客户端整体架构
11、算法
- 字符串反转
- 链表反转
- 有序数组合并
- 哈希算法
- 查找两个子视图的共同父视图
- 求无序数组当中的中位数
12、第三方底层原理
- AFNetworking
- SDWebImageView
- Reactive Cocoa
- AsyncDisplayKit