畅聊天下超详细校招iOS工程师面筋,不看后悔系列~

畅聊天下

1.问runloop和线程之间的关系。

答大概的讲了下什么是runloop,说了下runloop和线程的关系,也分析了下runloop的工作模式,具体说道runloop模型中的timer事件的时候,坑了,就问了下面这个问题。

2.问NSTimer的底层实现原理,比如要定时10秒钟,执行一个方法,原理是怎样实现的。

答当时想的应该是结合runloop的循环特性,循环一次判断一下有没有事件需要处理,直到10秒定时到时,主运行循环接收到timer事件,然后去处理,执行相应的操作,但是他好像问的是怎样具体精确到10秒钟的,而且又确认了一下,这个10秒钟是怎样精确的,没答上来。

3.问 从字典中取数据,为什么比在数组中取数据快,底层原理是什么?

答原来想的是,要问keyValue键值编码,同过key来取value的值,一一对应的,说一下底层原理和通过key取值,剩下的就是遍历字典的value值看看那个可以和key一一对应上,应该是遍历字典的算法上的优化,具体的是什么算法不知道,后面回来查资料是哈希算法实现的。

4.问 注册一个通知,收到通知的时候执行一个方法,这个过程的实现原理?

5.对block底层机制的理解与使用;

6.iOS内存管理机制(答 四个法则: 自己生成的对象,自己持有。 非自己生成的对象,自己也能持有。 不在需要自己持有对象的时候,释放。 非自己持有的对象无需释放。ARC下,主要是要注意循环引用的问题)


#畅聊天下##校招##iOS工程师##面经#
全部评论

相关推荐

2 2 评论
分享
牛客网
牛客企业服务