前言
辞去旧的一年,开始新的出发,即将临来金三银四跳槽高峰期
对于技术人员来说,面试就是打开新的大门的钥匙
回顾18年iOS发展的方向,下面总结一些面试小技巧以及今年面试方向
进阶技术方面
架构模式:
1、面向协议编程
2、面向借口编程(MVP)
a:mvc跟mvp的区别以及使用的优缺点
3、mvc&mvvm
4、函数式编程
设计模式:
1、23中常见的设计模式
a:高频
b:中频
c:低频
2、iOS中的设计模式
3、mvc经典的架构中有哪些常用的设计模式
大工程项目管理:
1、工程模块管理
2、组件化
a:组件间的通讯,是通过什么方式来做的
性能优化:
场景解决方案:
1、高并发网络场景
2、UI优化处理
3、大数据同步
第三方框架部分:
1、YYKit
2、AFNetworking
3、SDWebImage
a:SDWebImage是怎么来清理缓存
b:SDWebImage是怎么处理接收的内存警告
c:caear和clean有什么区别
d:SDWebImage中怎么计算图片的成本大小
iOS面试底层方面
OC语言部分:
1、属性修饰符
a:什么情况使用weak关键词,相比assign有什么不同
b:@property的本质,ivar、getter、setter是如何生成并添加到这个类中的
2、对象消息机制
3、Block
a:使用block时什么情况会引发循环,怎么解决
4、kvo&kvo
a:如何手动触发一个value的KVO
b:kvc的keypath中的集合运算符如何使用
5、其他补充
a:obic使用什么机制管理对象内存
b:BAD_ACCESS在什么情况下出现
c:lldb(gdb)常用的调用命令
d:oc中字典的实现原理
e:iOS中的消息机制和消息转发机制的区别
f:怎么解决iOS打包成功后,运行在iPhone上会闪退、黑屏问题
Runtime System:
1、_objc_msgForward
函数是做什么的,直接调用它会发生什么
多线程:
1、runloop和线程有什么关系
2、runloop的mode作用
3、GCD
a:GCD的队列(dispatch_queue_t
)分哪两种类型
b:如何用GCD同步若干个异步调用(如根据若干个url异步加载多张图片,然后都在下载完成后合成一张整图)
c:dispatch_barrier_async
的作用
d:苹果为什么要废弃dispatch_get_current_queue
NSOperation:
runloop:
数据结构方面
线性表:
1、线性表顺序存储
2、创建性表
a:开辟堆区(malloc函数)
b:结构图指针的运用
c:利用lldb查看内存空间
3、销毁性表
a:free和Release妙用
4、插入元素
5、删除元素
a:简单算法
b:算法优化
6、算法时间复杂度估算
7、NSArray内存中的变化
8、NSMutableArray
a:扩容实现原理
b:内存中的变化
c:capacity的正确运用
9、编译器优化
a:Optimization Level
b:Debug&&Release
c:反汇编查看优化结果
以思维导图形式展现
iOS进阶技术
底层方面
数据结构方面
简历指导方面
面试技巧方面
结语
以上是方向性指导,以上内容都有相对应的视频讲解,在此,趁着金三银四的高峰期小编免费分享以上内容全部视频;需要这些视频请简书关注我、喜欢此篇文章,加我的iOS开发者群:637919808联系我免费领取(由于视频是加密的,需要我开通权限)