首页 > 小斑马货栈、伴鱼绘本、软通动力校招iOS工程师面筋分享
头像
牛客653792225号
编辑于 2020-06-08 11:53
+ 关注

小斑马货栈、伴鱼绘本、软通动力校招iOS工程师面筋分享

小斑马货栈

  1. 问的都是比较简单的基础,多线程GCD,缓存机制,数据库部分,属性的定义类型,swift基础;

  2. app的缓存机制应该怎么做的,大致描述一下你的思路;

  3. 实习公司的情况,还有对于薪资的要求.

整体来说,面试官比较平易近人,没有架子,挺好说话。

伴鱼绘本

面试3轮,技术2轮,hr1轮。技术面试难度一般。

第一轮:问了一些oc基础问题,如何创建方法,如何执行费方法以及执行延迟的执行代码,oc的垃圾回收机制等之类的基础问题。

第二轮:问了一些业务逻辑等问题。

第三轮:问一下我的期望薪资和职业规划。

软通动力

问对runloop的理解。

答 1)子线程中如果没有nsrunloop,那么运行一遍就结束了

2) 可以给子线程中添加runloop。

3) 如果我们在界面上滚动一个scrollview,那么我们会发现在停止滚动前,控制台不会有任何输出,就好像scrollView在滚动的时候将timer暂停了一样,在查看相应文档后发现,这其实就是runloop的mode在做怪。

4) 在开启一个NSTimer实质上是在当前的runloop中注册了一个新的事件源,而当scrollView滚动的时候,当前的MainRunLoop是处于UITrackingRunLoopMode的模式下,在这个模式下,是不会处理NSDefaultRunLoopMode的消息(因为RunLoop Mode不一样),要想在scrollView滚动的同时也接受其它runloop的消息,我们需要改变两者之间的runloopmode. 简单的说就是NSTimer不会开启新的进程,只是在Runloop里注册了一下,Runloop每次loop时都会检测这个timer,看是否可以触发。

5) 当Runloop在A mode,而timer注册在B mode时就无法去检测这个timer,所以需要把NSTimer也注册到A mode,这样就可以被检测到。

更多模拟面试

全部评论

(0) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐