
今天在逛知乎的时候,看到一个帖子,下面的回答支持最多的是一个技术总监总结的他面试iOS开发工程师,常问的20个非常简单的问题,但能准确答对一半以上的人却非常少。本人看了下,感觉这些问题确实比较基础,之所以很多人很多问题答不上,归根结底还是对基础知识不够重视,掌握得不够牢靠。下面将者20个问题分享出来,大家可以来看看,你可以准确答对几个。
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的时间复杂度是多少?我很想知道!
以上就是iOS工程师面试常被问到的20个基础问题,如果你都能准确答上,那么恭喜你,你确实很优秀。如果你还有不清楚的地方,那就赶紧去找资料了解、学习去吧。
相关文章:《iOS学习之UITableView的常见属性及用法》
网友评论