初级
关于单方面技术
- ARC / MRC 简单叙述一下
- 封装过什么控件, 简单叙述一下
- 属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用
- Get Set方法
- id 是什么
- 代理, Block, 循环引用
- 通知的使用
关于项目方面
- 参与过什么项目, 负责什么
- 项目中你参与的模块遇到过什么大的问题, 怎么解决的, 详细叙述
- Git/SVN
中级
在基础技术问题的基础上
- 通知
- 简单讲述SDWebImage实现原理
- 数据库语句
- CoreData常用使用
- 优化UITableView的方式, 方法
- 深浅拷贝
- 运行时你知道多少
- 封装过什么
关于项目方面
- 熟练的使用Git
- 如果让你设计一个缓存模块, 你会怎么设计,需要考虑到什么
- 说说MVC MVVM MVP
- 做过最失败的项目是什么, 为什么
- 你觉得怎么划分模块会好一点
高级
基于前两个、
- 多线程详细说一下, 怎么封装一个适合自己项目的线程池,怎么处理会好一点。
- 多线程CoreData, 这个基本所有的面试都会提到一下吧
- 使用过什么开源的动画库, 这就是随便问问 比如pop, canvas等
- 有自己的开源项目么?
- 有全面的对网络库进行二次开发封装么, 怎么干的。
- 讲一下运行时调换系统方法swizzle的原理
- 自己尝试着模拟系统Block的实现
- 怎么理解界面模板, 有做过相关开发么
- IM的东西随便问问,如果公司需要
- 内存优化怎么搞一下
- 自己写个tableView玩玩?
项目方面
- 参与过什么项目, 做过什么大型的项目, 负责哪些模块
- 框架的设计有没有参与, 如果有的话, 参与了框架中哪一部分的工作, 怎么考虑你这部分未来的可扩展性的。
- 在项目中严格按照产品,UIUE的思维去做,还是会把自己的想法提出来。
- 怎么为一个项目写一套完整的网络库, 缓存库, 界面库。
网友评论