百度iOS面试总结

一面

  • 1、iOS基础知识

  • 2、Python基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等。

  • 3、iOS一些源码的阅读

  • 4、优秀的第三方框架源码阅读

  • 5、GLSurfaceView的相关知识,OpenGL,Shader,绘制流程。

  • 6、询问当前做的项目,以及到具体的实现和优化。

  • 7、多进程间的通讯,Binder机制。

  • 8、询问看过哪些框架源码,EventBus,Volley讲了一下。

二面

  • 1、Delegate 、Notification和KVO比较各自的优缺点

  • 2、在一个UI的正中间实现一个正方形的红色视图有几种方式?

  • 3、手触碰到屏幕的时候,响应机制是怎样的?第一响应者是谁?追问 UIView和UIResponse的关系是什么?

  • 4、UIViewController的生命周期是什么?追问 UIViewController 只alloc而没用到的时候,

  • 5、UIViewController 的view是否加载了?如果没有加载那什么时候加载?

  • 直接用UILabel和自己用DrawRect画UILabel,哪个性能好?为什么?哪个占用的内存少?为什么?

  • 6、AFNetworking是否支持ipv6?

  • 7、项目采用64位,为什么要用64位?怎么修改成64位?i386是什么?他们有什么关系?

  • 8、iOS的应用程序有几种状态?追问,退到后台代码是否可以执行?双击home键,代码是否可以执行?

  • 9、一般使用的图标内存为多大?比如200×300的图片,内存应该占用多少比较合理?

  • 10、说说你对内存泄漏的看法,追问,block为什么容易引起内存泄漏?

  • 11、[object copy]是浅拷贝还是深拷贝?为什么是浅拷贝?copy是实现了哪个协议?

  • 12、Images.xcassets和直接用图片有什么不一样?

三面

  • 全是问得iOS方面的问题,问得真的很细,需要基础很扎实,对各个机制真的足够理解,不然确实有点难回答。

  • 1、内存管理方面的

  • 2、多线程

  • 3、各种队列

  • 4、线程锁

  • 5、MVVM

  • 就是考察一下我iOS方面的能力到底是否有水分吧。问得很细,确实需要基础足够扎实才行。