面试ios开发工程师可了解哪些方面

请问下,面试ios开发工程师可了解哪些方面
最新回答
枯墨云

2024-11-06 01:48:06

这个问题已经有很多优秀的答案了,但最近一周面试了很多iOS开发,也准备了一些题目,忍不住发上来...

首先需要声明的是,此次的面试者大多在有1~3年的iOS开发经验,并非需要找一个真正的大牛,所以我准备的题目,自己觉得大多数还是比较基础,比较能够看出这个层次的人的水准的。如果你也是个有3年左右开发经验的从业者,不妨一试。

面试开始的时候,我会让面试者选择一个他最熟悉的项目,给我们介绍一下它的技术架构,以及面试者在其中参与的模块和具体工作。因为我本人很讨厌面试上来做自我介绍,所以我一般开门见山,直接开始讲项目了。事实上,很多开发者并不明白我提到的“架构”的具体意思,有些人说了一大堆产品的功能,还有人说的非常笼统(比如,遵循MVC架构之类),一般这种时候我会打断他们,直接让他们给我讲一下这个APP的层次结构,或者是核心模块等。
之后我会问两个问题:
1. 讲述一次在这个APP中,用户触发了一个事件,引起了一个服务请求,然后获取服务端返回,并且更新前端界面的过程。请说的详细一点,比如数据经过了哪些类的处理,每一次传递时的格式是怎么样的?
2. 你参与的APP,是如何处理多个服务的同步发起的?
随后让面试者说一下APP的界面架构,这个比较随意。

问完了项目,就开始基础知识题啦~
1. 什么是arc?(arc是为了解决什么问题诞生的?)

2. 请解释以下keywords的区别: assign vs weak, __block vs __weak
3. __block在arc和非arc下含义一样吗?
4. 使用atomic一定是线程安全的吗?
5. 描述一个你遇到过的retain cycle例子。(别撒谎,你肯定遇到过)
6. +(void)load; +(void)initialize;有什么用处?
7. 为什么其他语言里叫函数调用, objective c里则是给对象发消息(或者谈下对runtime的理解)
8. 什么是method swizzling?
9. UIView和CALayer是啥关系?
10. 如何高性能的给UIImageView加个圆角?(不准说layer.cornerRadius!)
11. 使用drawRect有什么影响?(这个可深可浅,你至少得用过。。)
12. ASIHttpRequest或者SDWebImage里面给UIImageView加载图片的逻辑是什么样的?(把UIImageView放到UITableViewCell里面问更赞)
13. 麻烦你设计个简单的图片内存缓存器(移除策略是一定要说的)
14. 讲讲你用Instrument优化动画性能的经历吧(别问我什么是Instrument)
15. loadView是干嘛用的?
16. viewWillLayoutSubView你总是知道的。。
17. GCD里面有哪几种Queue?你自己建立过串行queue吗?背后的线程模型是什么样的?
18. 用过coredata或者sqlite吗?读写是分线程的吗?遇到过死锁没?咋解决的?
19. http的post和get啥区别?(区别挺多的,麻烦多说点)
20. 我知道你大学毕业过后就没接触过算法数据结构了,但是请你一定告诉我什么是Binary search tree? search的时间复杂度是多少?我很想知道!