• dSYM你是如何分析的?

  • 多线程有哪几种?你更倾向于哪一种?

  • 单例弊端?

  • 如何把异步线程转换成同步任务进行单元测试?

  • 介绍下App启动的完成过程?

  • 比如App启动过慢,你可能想到的因素有哪些?

  • 0x8badf00d表示是什么?

  • 怎么防止反编译?

  • 说说你遇到到的技术难点?

  • 说说你了解的第三方原理或底层知识?

答案详见:http://url.cn/5oWSdgZ


  • MVC 具备什么样的优势,各个模块之间怎样通信,点击 button 后怎样通知 model?

  • 两个无线长度链表(也就是可能有环)判断有没有交点?

  • UITableView 的相关优化?

  • Delegate、Notification 和 KVO 比较各自的优缺点、效率还有使用场景?

  • 如何手动通知 KVO?

  • OC 中的 copy 方法?

  • runtime 中,SEL 和 IMP 的区别?

  • autoreleasepool 的使用场景和原理?

  • RunLoop 的实现原理和数据结构,什么时候会用到?

  • block 为什么会有循环引用?

  • 使用 GCD 如何实现这个需求: A、B、C 三个任务并发,完成后执行任务 D?

  • NSOperation 和 GCD 的区别?

  • CoreData的使用,如何处理多线程问题?

  • 如何设计图片缓存?

  • 有没有自己设计过网络控件?


阿里一面

  • 先介绍了项目,然后问了一些项目中的问题,然后开始问基础
  • 属性的关键字
  • 浅拷贝和深拷贝的区别
  • Block的循环引用、如何解决、原理
  • 三种Block
  • Block和delegate的比较
  • kvo的实现原理
  • Autorelease pool的实现原理
  • 消息转发机制
  • 线程死锁的四个条件
  • 进程和线程的区别
  • 持久化
  • 还问了数据库的知识我当时说我全忘了就没问了
  • 中途还讨论了massonery的约束应该写在哪里,我说应该写在layoutSubViews,他说会调用多次,然后争论了一会儿

阿里二面

  • 介绍项目
  • 性能优化
  • YYModel和AF源码
  • 如何自己设计json转model
  • 架构
  • 迷之算法题

阿里三面

  • 一个安卓的面试官。。。。。
  • 主要问了项目的一些东西 和给一些场景问我如何实现
  • 自我介绍 介绍一些项目难点
  • 主线程是相对于什么而言的
  • 一张图片的内存占用大小是由什么决定的
  • 索引的作用
  • 索引的优缺点
  • 在数组中找最小的k个数
  • 淘宝下拉加载更多如何优化
  • 淘宝页面发送HTTP请求的过程
  • 介绍一下MVVM
  • 知道哪些设计模式