系统学习推荐一些经典书籍:
《Effective Objective-C 2.0》
《Objective-C 高级编程》
《剑指Offer》
《程序员的自我修养》
本文收录了一些 iOS 常见的面试题目,重点是要理解其背后原理实现,知道其具体应用场景。
1.Runloop 的实现原理和数据结构,及其应用?
包括 Runloop 与线程的关系,Runloop 的 Mode 等
参考:深入理解 Runloop
2.谈谈对 runtime 的理解,及其应用, 为什么称 OC 为动态语言?
包括 isa 指针, SEL, IMP,MetaClass,objec_msgSend, Method Swizzling,Objective-C Associated Objects 等
参考:iOS Runtime 详解,Objective-C runtime
3.内存管理 ARC, MRC
包括内存泄露,野指针,循环引用,内存泄露调试工具,堆,栈等
参考:iOS 内存管理详解
4.iOS 消息传递机制
参考:iOS 消息传递机制
5.多线程,哪些场景需要开辟线程?
包括 NSTread, NSOperationQueue,CGD,同步锁,主线程刷新 UI,
同步,异步,并行,串行
参考:iOS 中的多线程技术,iOS 并行开发系列--并行开发其实很容易
6.Autoreleasepool 原理和使用场景
7.App 的启动过程
8.UIViewController 生命周期
9.UIView 的绘制流程
包括 init, initwithcode, awake, layoutsubviews, drawrect 等方法的调用顺序,使用xib, storyboard 的调用顺序
setNeedsDisplay, layoutIfNeeded,hittest, pointinside
参考:谈谈 layoutSubviews 和 drawrect,UIView 的 hitTest 和pointInside 方法
10.UIView 的 layer
包括 anchorPoint,position,动画
11.Block 本质
包括 __weak 和 __block,循环引用问题
12.property 和 ivar 的区别
包括属性关键字 strong,weak,assign, retain, copy, atomic, nonatomic,readonly, readwrite
参考:iOS 开发 @property 和 ivar 的区别,OC MRC 成员变量, property, synthesize, dynamic
13.KVO 和 KVC,Delegate,单例, Notification等设计模式
14.static, const, extern 关键字的作用
参考:OC 中的 static,const,extern 的理解
15.Category 和 Extension, Protocol
16.iOS中常用的数据存储方式有哪些?
包括 NSUserDefault,KeyChainplist,Archive(归档),SQLite,CoreData
17.iOS的沙盒目录结构是怎样的?
面试题参考: