Fork me on GitHub

浅谈 iOS 面试

  最近遇到一家公司面试,体验还不错,和大家分享下。

大概流程是这样的:

  1. 笔试题 14 道,完成时间约 1 小时。
  2. 面试官根据笔试题及答题情况进行扩展提问,也会涉及到平时做项目的经验。
  3. HR 考察求职者的表达能力、心态、以及过往工作经历。

  整个过程大概 2 小时 20 分钟,所问题目大多是贴近实际开发中遇到的场景和问题,整体偏向于实用,面试官十分平易近人,没有架子,整个过程有点像是在聊天,不容易造成紧张感和压迫感。

  比较赞的一点是笔试部分有几道题目是可以选择性回答的,可以选择感觉掌握的好的题目进行回答,每个人都应该有擅长的领域,这样可以让求职者有机会表现自己,也不至于被一棍子打死。

  HR 给人印象也是十分深刻,这应该是我遇到的最专业的 HR 了,交流中的提问的问题简明扼要,全程面带微笑,给人的感觉是很有气场又很乐于与之交流,其实从面试官和 HR 的交流过程中能够感受到公司的整体氛围。

  下面我们来分享一下笔试环节的题目,这里我们并不公开公司名称,大家做个参考,进行一下自我检测。

一、基础题 (全部需要作答)

  1. 什么是 KVC/KVO ?
  2. UIView/CALayer 之间是什么关系?
  3. 定义类 Phone 提供 startCall 方法,当 call 结束的时候能异步回调。请使用 Block 来实现这个功能(通话过程用伪代码实现)。
  4. socket 连接和 http 连接的区别是什么?
  5. __weak__strong__block 的用法?
  6. 设计模式有几个原则?用最简短的文字描述一下每个设计原则?
  7. iOS 数据持久化方式有哪些?简述一下他们的使用方法和特点。

二、iOS 技能题 (9 选 6,最低完成 6 道题)

  1. 描述对 iOS 离屏渲染的理解。
  2. 简述事件传递链和事件响应链。
  3. 怎么样做好线程安全?
  4. 举例 iOS 发生内存泄漏的情形?
  5. 界面自动布局实现方式?
  6. 列举出 iOS 的动画实现方式。
  7. Xcode 的 Test/Profile/Analyze/Archive/Create Bot 的用途。
  8. 功能提交 QA 测试之前,开发自测需要测试哪些要点?
  9. 如何做好 App 安全?

三、综合题 (4 选 1,自选最能体现实力的一道题作答)

  1. 请描述 HTTPS 建立连接的全流程图,图文释义其关键细节。
  2. 设计一个技术架构,实现全球的 IM 通信 App。(注:不准使用环信、融云之类的第三方通信 SDK)
  3. iOS 如何做启动性能优化,简述关键的几个点。
  4. 一个文本文件,大约有 10 万行,每行一个词,要求统计出其中最频繁出现的前10个词。

  在答完题目之后,最好对每个题目有一个总结或者延伸,比如 KVO 的应用场景有哪些、CALayer 如何响应事件?TCP 和 UDP 有什么区别、HTTPS 如何保证安全、对 Block 的理解、谈谈你对设计模式中某个设计原则的理解、持久化存储时敏感数据如何处理?等等诸多问题,这些在日常开发中就会遇到,也是面试官经常考察的内容。

------------- 本文结束感谢您的阅读 -------------