iOS面试总结

居理新房面试(2020-9-4)

1.子线程内执行A,B,C,D,E五个任务,B依赖于A的完成,E依赖于C,D的完成,B和E都完成后,在主线程打印“任务全部完成”,如何高效执行?
2.中根序列: BDCEAFHG, 后根序列: EDCBHGFA, 求先根序列。
3.sdwebimage如何进行多线程下载的
4.autoreleasepoolpage的数据结构

  1. 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)

  1. git命令re-base的作用
    2.RSA,md5,base64等加密算法的区别,以及使用场景
    3.httphttps的区别,tcp三次握手的流程,http协议,http1.0http2.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》

你可能感兴趣的:(iOS面试总结)