iOS初级、中级、高级面试题大集合
初级篇
- View ViewController 的关系?
- tintColor 是做什么的?
- 如何给一个UIView 切出圆角?
- 为什么在UITableViewDataSource里面的cellForRowAtIndexPath中,要调用dequeueReusableCellWithIdentifier, 而不是直接新建一个UITableViewCell?
- 如何异步地从网上下载一个文件?用过开源库吗?
- 你如何处理 JSON 文件?用过开源库吗?
中级篇
- 现在有一个 UITableView, 其中一个 Cell 要显示一个网页。如何动态根据网页本身大小确定高度?(iOS 7/8 不同)
- 用 Auto Layout 排版的时候,如何动态改变 Constriants ?比如 |[view1]-5-[view2]|,要做一个动画将 view2 隐藏,layout 变为 |[view1]|, 怎么写?
- 使用过 Singleton 吗?在 Swift 里如何实现一个 Singleton class?
- Swift 中 map, reduce, filter 是 lazy 的。什么是 lazy?
- 你要写一个词语接龙。有一个语料库corpus:[String], 设计合适的数据结构。
- drawRect是做什么的?
- 如何在两个并列的 UIButton 之间加一条指定颜色长度的分割线?
- HTTP的POST和GET啥区别?(区别挺多的,麻烦多说点)
高级篇
- 什么是ARC?(ARC是为了解决什么问题诞生的?)
- 描述一个你遇到过的retain cycle例子。
- +(void)load; +(void)initialize;有什么用处?
- 为什么其他语言里叫函数调用, Objective-C里则是给对象发消息(或者谈下对runtime的理解)
- 什么是method swizzling?
- method swizzling 在 Swift 中能实现吗?
- UIView和CALayer是啥关系?
- 如何高性能的给 UIImageView 加个圆角?(不准说layer.cornerRadius!)
- 麻烦你设计个简单的图片内存缓存器
- 讲讲你用Instrument优化动画性能的经历吧(别问我什么是Instrument)
- loadView是干嘛用的?
- viewWillLayoutSubView是什么?
- GCD里面有哪几种Queue?你自己建立过串行queue吗?背后的线程模型是什么样的?
- 用过Core Data或者sqlite吗?读写是分线程的吗?遇到过死锁没?咋解决的?