iOS 客户端开发的三面。
这次的面试官,一听他说话,年纪就不小了,感觉差不多也是个全栈。他问的 iOS 相关的问题我 90% 都答上来了,提到操作系统、计算机网络、算法之类的,我直说因为长期不投入实用,都忘了,他就说那就不问这方面的了,最后还劝告说,这些更多是方法论的东西,建议我学好,下面是他问了的 iOS 相关的问题:
(我在简历上写自己独立开发了几个 App)说一下你自己做的那个 App(随便挑了一个)
(我大概阐述了产品方向之后,他问我技术上最难的是什么,然后随口提到了要保存图片到相册)
关于 iOS 系统相册,有哪些相关方案可以获取?
以前的 AssetsLibrary 和现在的 Photos 框架都知道吗?
(我说了关于现在引入 Photos 和 PhotosUI 之后可以获取 LivePhoto 的问题)都熟悉哪些框架,有没有特别了解的?
(我说我熟悉 WebKit,然后他就问了我 GCD = =)(发现我会用 GCD 之后)能不能说一下底层?
-
(我说我知道点 ARC 相关的底层实现,就说了一通,他很满意,这里要强烈推荐下面这本书)
同类型的问题还有 assign、weak 的区别,ARC 如何实现,编译时、运行时区别,weak 属性的对象在废弃后 指针是如何指向 nil 的……
平时了解一些架构吗?
(我说我知道 MVC、MVVM。其他的光知道没用过,不敢拿出来装B)说一下 MVVM
(泪奔,难得在面试的时候能碰上自己很熟悉的,推荐不熟悉的看看最近挺火的文章《面向协议的 MVVM 架构介绍》)知道 KVO、KVC 吗?
(虽然这个东西大家都在用,但是查一下还是能查出来一些自己不知道的,心里没底的,建议现在就去 Google 一下)你平时做 App 之后,有什么推广途径?
(其中我提到了一些推广平台,国内的有 36Kr 的 NEXT、爱范儿的 MindStore 和 AppSo,国外的有 ProductHunt,好像他在听的时候还在一边拿笔记,人家也还在学习啊~)