继上一篇文章【面试】腾讯 iOS 开发实习电话面试记录(一)后,又接到了第二个电话,继续记录。根据回忆写的,问题先后可能不对。
(一开始让我自我介绍一下,这一介绍,就说了我基本在用 Swift 而不是 OC 写正式项目,然后他就开始偏重 Swift 来问,也不知道是照顾我,还是怕我撒谎)
- 说一下 C/C 里面变量定义和声明的区别
- OC 里面的 property 有没有像 Swift 里面一样的 public 和 private 之分
- 我看你简历里面说你写过超过5万行 Swift,你怎么知道你写过 5 万行? (我说可以通过 Terminal 来统计我的项目文件夹里面任意后缀文件的行数)
- 你这个5万行,包括第三方 API 吗? (我说不包括,不过只要他问 Swift 少问 OC,我还是有信心)
- 你说一下你对 Swift 这门语言的理解,有什么和 C、C 或 OC 不同的地方? (我说了关于 protocol 和 extension 相关的东西,还有关于 OC 里面的 NSString 浅复制,现在 Swift 对 String 类型是深复制,以及 Swift 对这个值拷贝的优化的问题……会的东西还是要多说)
- 平时你对你上架的这些产品是怎么监测崩溃情况的
- 平时怎么检测内存泄露,有什么解决方案
- TableView 滑动卡顿有什么优化方案 (这个因为刚好在面试之前还准备了一下,噼里啪啦说了好多,可能还说了点面试官不知道的东西。然后他说你怎么知道这些东西的,平时都在用吗,我说都是在网上看的,因为平时没有做过非常复杂的 Cell,所以实际应用起来了的优化手段并不多)
- 说一下 HTTP 协议
(我说不会,就简单说了下 http 和 https 的区别,和 iOS 9 开始引导访问 https 的问题,大家可以背一下这一段:【为了强制增强数据访问安全, iOS9 默认会把所有从**
NSURLConnection
** 、CFURL
、NSURLSession
**发出的 HTTP 请求,都改为 HTTPS 请求:iOS9.x-SDK编译时,默认会让所有从**NSURLConnection
、CFURL
、NSURLSession
**发出的 HTTP 请求统一采用 TLS 1.2(SSL 3.1) 协议。】**) - 说一下你最复杂的一个项目的技术内容
- 你所有项目都是你独立开发完成的吗,包括切图、UI (我说是,不过他也没问我 Photoshop,就此作罢)
- 说一下不同版本 iPhone 的分辨率 (我说我没背下来那个 320*568 什么的分辨率,但我知道硬件屏幕上 dot 的数量和软件屏幕 pixel 数量的关系,而且很特殊的一点是,虽然 iPhone 3GS 对应的是 1x,iPhone 4S 开始对应 2x,但是 iPhone 6 对应的所谓 3x 实际上是 1:2.6几,Apple 帮我们做了把 3x 的图做成 2.6x 的这个工作)
- 你平时是怎么做技术积累的