相信最近很多人都在跳槽,我这里就根据知识点分门别类的整理了一下
最近公司招人,所以面试了一波,总结了一下这个区间内的要求吧。
面试答案下面有,希望大家收藏下
一、线程、队列、锁
1、线程、队列的关系? 一个线程是否可能存在于两个队列?
2、 队列一定会创建线程吗?
3、队列是否可以无限制创建?
4、 PerformSelector & NSInvocation优劣对比*
5、 gcd 的使用,能不能取消?
6、如何进行线程保活
7、编程题 3个线程顺序打印 0-100
二、响应链
1、 app如何接收到触摸事件的
2、 响应链: 如果 Swizzle 了 父 View 的 touchBegin 的方法, 会对子 View 造成什么影响?
3、两个按钮同时响应
4、UIbutton继承链,UIControl UIresponder区别
5、hit-test 和 point inside 的区别
三、GCD
1、 group 如何实现barrier类似的功能?
2、 gcd queue 的区别
3、 gcd、NSOperation区别, 功能方法区别.
4、 GCD group 如何实现同步的? (还能用什么实现?)
5、 执行一个 NSThread 任务, 如何在执行过程中让他终止?
6、 iOS NSOperation 是如何终止/取消任务的?
7、 多线程,异步执行(async)一个performSelector 会执行么?如果加上 afterDelay呢?
8、 GCD 实现 NSOperationQueue
9、 DispatchQoS的作用
四、ISA、类结构
1、 isa 指针是什么?里面有哪些特殊的位数?什么是TaggedPointer的优化?
2、 isa指针里面都存了什么,32和64位分别讲一下
3、 OC 是否支持重载? 为什么?
4、IMP、SEL Method 都表示什么意思? 与 _cmd 相关
5、 class 的底层结构是什么样的?
6、 method_t 里包含什么?
7、 super 的本质是什么?
8、 OC的消息机制有几步?
五、组件化、架构
1、 CTMediator
2、. 公司有多个项目启动, 如何让接入的组件效率提升? (不局限于iOS, 要讲前后端配合的方案, 偏重量级的方案)
3、. 如果你做的是一个超级 APP (微信、淘宝), 里面有一个引擎可以运行不同的小程序, 你如何设计保证小程序之间的安全性?
4、 介绍一下你们APP的架构设计
六、Swift
1、Swift、OC 如何相互调用? Swift-->OC 、OC -->Swift? 我开发一个Swift的SDK,(API都是Swift的), 内部需要调用到 OC 的库, 要怎么做?
2、dynamic 在swift与OC中的作用
3、protobuf的原理
4、 rn 与 flutter 的区别,flutter 组件渲染规则
答案详见:docs.qq.com/doc/DVWlQam9Qd3B1cEF2
希望自己能有目标有计划地准备面试,后面我会逐个复习一下相应的内容
- 更多技术题合集: