继上一篇文章【面试】腾讯 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 的这个工作)你平时是怎么做技术积累的
好像电话面试就此结束了,下次面试是面试官来本地走校招流程,然后之前打过电话、简历评级够好的,现场面试的时候会比较容易给 offer。