iOS中级开发,鹅厂面试全程记录!

  

感谢您的点击,为表达诚意,结尾有福利,嘿嘿!

  

腾讯社招iOS面试记录

  

毕业好几年了,上周发送了简历给腾讯,参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。

  

一面电话面试:

  

面试官主要是针对iOS相关的基础问题。

  
      <李>先简单自我介绍一下自己李   <李>对mrc和弧的理解   <李>谈谈对自动释放池的理解   <李>自动释放池在mrc和弧区别李   <李>多层自动释放池嵌套的对象在哪一层释放李   <李>对于块,理解,mrc和电弧下有什么区别,使用注意事项李   <李>对于深拷贝和浅拷贝的理解   <李>对于强弱、原子等等理解李   <李>弱原理李   <李>如果属性完全不加修饰词入弱,原子,系统会怎么处理李   <李>简述下块的实现李   <李>描述下我系统如何保证消息不丢李   <李> IM数据库如何设计表   <李> c++引用和指针有什么区别李   <李> Http协议30 x的错误是什么李   <李>谈谈你懂runloop得理解:由浅入深李   <李>谈谈对多线程理解:由浅入深李   <李>谈谈类别和扩展区别,系统如何底层实现类别李   <李>谈谈消息转发机制实现李   <李>谈谈事件响应链,如何响应观点之外的事件   <李>界面性能优化李   
  
  

整个面试大约1个半小时。整体上,回答的还算好,自动释放池这块,不够清楚底层实现。另外原子是在属性没有写的情况下系统默认的.Block的底层实现也表达的不够准确。

     

一面之后过了几天,给了二面通知。

  

二面视频面试:

  

这次面试官相对于一面,更加侧重于过往项目。

  

1。开头都是简短的自我介绍
2。聊一聊过往项目中你觉得收获最大的一个模块。

  

<>强突然遇到这个问题,心理是有点懵逼的呀,我不禁反想了一下,过去这些个项目,零零散散收获了不少知识和经验,可是具体到哪一个模块,完整的思考还是没有过的。

  

答:就说了上个项目做类似朋友圈的优化思路,谈到了空间换时间,缓存,渲染相关的技术点。

  

不得不惊叹腾讯的面试官的逻辑条理,很快抓住了问题的本质。

  

需求痛点:界面卡顿,体验不好

  

解决方案:探索的思路——》解决方案。

  

该模块引申到的新话题还涉及到了增量更新,内存缓存,本地缓存。

  

细节上还谈到了富文本绘制,Coretext框架的使用,哎,说来惭愧,上次使用Coretext已经是两年前,连框架的核心API都已经不记得了。再加上项目中使用的是YYLabel的开源框架。最后只能凭借印象大概说了下绘制的流程,其实面试官都是由浅入深的,如果这边回答的不够深入。那么后面也就不会有更深入的探讨了。

  
      <李>   

    上个项目中存在视频裁剪,录制等功能。面试官对这块有些兴趣,就聊到了视频裁剪的实现,因为我们项目中使用了ffmpeg做的裁剪功能。包括视频下载,数据裁剪封装,引申聊到了边预览边裁剪,因为我之前的项目并没有做到预览裁剪这块。也就没有深入聊下去了。期间简单谈到了rstp协议,和HLS, rtmp等协议的对比,信令协议。虽然之前都有看过协议的大致实现和预览,但是实际使用的是SDK,没有实践加持。这部分知识是很容易忘记的。大致聊了下总体差别。

      李   <李>   

    项目中有用到过DLNA投屏协议,说来又是惭愧,自己完整做过的项目,过去了两年,居然连流程,协议都只是零零散散的记起来了,很勉强的说出了大概实现流程。知道最后才记起来是soap协议。当初为了做这个可是研究了整整两周的面。试官应该也实现过这个需求,提到了视频盒子断线如何检测做处理,什么原因导致的。由于之前我们的产品需求比较简单,没有特别完善。这里我也只能说了大概。

      李   <李>项目做过视频播放需求,使用的AVPlayer框架(重点聊)面试官问的到,AVPlayer怎么监听视频缓冲状态的,有哪几种状态。说来又是惭愧,我只记得是KVO监听的。具体的API已经记不清了。
    接着面试官问到这个需求遇到过哪些坑,怎么解决的。这个还真的有,首先是回调播放进度在拖动时候错乱,加载某些小视频的适配,首帧出图很慢.KVO的模式不灵活。缓冲进度不受我们控制。短视频可能直接迅速缓冲到底。还是之前的思路,需求痛点有了

    iOS中级开发,鹅厂面试全程记录!