居理新房面试(2020-9-4)
1.子线程内执行A,B,C,D,E五个任务,B依赖于A的完成,E依赖于C,D的完成,B和E都完成后,在主线程打印“任务全部完成”,如何高效执行?
2.中根序列: BDCEAFHG, 后根序列: EDCBHGFA, 求先根序列。
3.sdwebimage如何进行多线程下载的
4.autoreleasepoolpage的数据结构
- jenkins打包
6.分类中添加的关联对象保存在哪里,释放时机
7.定时器循环引用的解决办法
8.字符串为什么要用copy修饰
微博面试(2020-9-4)
1、微博每天有10亿条记录,每条记录10-100K。现在你有一台内存为4G的电脑,计算播放最多的一条微博
2、在一个数组中找出前4个最大的数?请设计一个最优的算法。
3.atomic的实现机制
4.(category)(extension)的区别
5.如何用GCD和SDWebImage的SDWebImageDownloader 的
- (nullable SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url
options:(SDWebImageDownloaderOptions)options
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
在异步非线程中,实现完成串行下载组图片文件。即一个完成再才开始下载第二个。
SDWebImageDownloaderCompletedBlock和SDWebImageDownloaderOptions 参数无需关心
6.如何监听卡顿现象(runloop的observe)
7.如何高效的绘制圆角阴影等
8.gcd如何并发限制(信号量)
美术宝面试(2020-9-3)
1.手写安全单例
2.手写链表反转
3.realm的效率问题
4.常用的锁,什么情况NSLock会出现死锁
5.APP的架构问题
6.在main中向主队列异步添加任务 会有什么问题吗
有咖互动面试(2020-9-2)
1.@"1"这种字符串存储在地方(考察Tagged Pointer)
2.如何实现copy协议,对于数据模型该怎么实现深拷贝功能
3.如何通过关联对象增加一个weak类型的delegate
4.weak的存储原理,如何实现的弱引用
5.项目中遇到的循环引用如何解决
6.如何实现抖音那种,当cell滚动某个位置的时候开始播放
7.autoreleasepool实现原理
8.copy和strong区别,分别在什么情况会使用
融云面试(2020-9-1)
- git命令
re-base
的作用
2.RSA,md5,base64
等加密算法的区别,以及使用场景
3.http
和https
的区别,tcp
三次握手的流程,http
协议,http1.0
和http2.0
的区别,header
中常用的字段,https
如何实现自治证书(http的相关问题非常多)
4.如何优化本地数据库查询效率
5.线程间通信,锁机制在操作系统级的实现
6.启动app,收到大量离线IM消息,如何优化这种场景
7.聊天页面大量的cell(音频,图片,文字等)布局,如何优化
8.项目中都依赖了某第三方库 导致版本冲突问题,如何解决(面试官说了个符号化)
9.自动化打包
10.MVVM和MVC,列举常见的设计模式
跟谁学面试(2020-8-28)
1.组件化的实现过程
2.路由框架的实现原理
3.block捕获变量,自动变量,静态变量,数组
4.父类,子类,分类中的load方法的执行顺序,自定义方法的执行顺序
5.实现链表的反转(不带头节点的链表)
6.方法交换,在子类中进行方法交换(交换了父类的方法),那父类进行调用时会有什么影响,如何解决此类问题
7.消息调用的过程
8.事件响应链
9.自动化打包
题目有一些出自《招聘一个靠谱的iOS》