├── README.md └── images └── logo.png /README.md: -------------------------------------------------------------------------------- 1 | 2 | ![](./images/logo.png) 3 | 4 | ## 一. iOS基础类面试题 5 | 6 | ### 1.1 内存管理相关 7 | 8 | ****内存管理**** 9 | 10 | * [iOS 内存分布是怎样的?有哪些区域,每个区域的作用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/1) 11 | * [谈谈iOS的内存管理方式的理解](https://github.com/tbfungeek/iOS-Daily-Interview/issues/2) 12 | * [MRC、ARC和 Autorelease的区别](https://github.com/tbfungeek/iOS-Daily-Interview/issues/3) 13 | * [ARC在编译时和运行时都做了哪些工作](https://github.com/tbfungeek/iOS-Daily-Interview/issues/7) 14 | * [ARC 使用的过程中需要注意点以及遵循的原则](https://github.com/tbfungeek/iOS-Daily-Interview/issues/4) 15 | * [ARC情况下有哪些限制](https://github.com/tbfungeek/iOS-Daily-Interview/issues/8) 16 | * [介绍下NSZone](https://github.com/tbfungeek/iOS-Daily-Interview/issues/5) 17 | * [说说你对assign,strong,weak,unsafe_unretained,copy的理解](https://github.com/tbfungeek/iOS-Daily-Interview/issues/6) 18 | * [__weak 修饰的变量,是否已经被注册在了 @autoreleasePool 中?为什么?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/9) 19 | * [ARC 的 retainCount 怎么存储的?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/10) 20 | * [__weak 属性修饰的变量,如何实现在变量没有强引用后自动置为 nil?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/11) 21 | * [说一下什么是 悬垂指针?什么是 野指针?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/12) 22 | * [BAD_ACCESS 在什么情况下出现?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/13) 23 | * [retain、release 的实现机制是怎样的?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/14) 24 | * [能不能简述一下 dealloc 的实现机制?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/15) 25 | * [在 MRC 下如何重写属性的 Setter 和 Getter?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/16) 26 | * [介绍下@property、@synthesize和@dynamic的作用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/17) 27 | 28 | ****AutoReleasePool相关**** 29 | 30 | * [什么是AutoReleasePool,它都有哪几种类型](https://github.com/tbfungeek/iOS-Daily-Interview/issues/18) 31 | * [RunLoop AutoReleasePool的创建及释放时机是怎样的](https://github.com/tbfungeek/iOS-Daily-Interview/issues/19) 32 | * [简要介绍下 @autoreleasePool 的数据结构?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/20) 33 | * [函数返回一个对象时,会对对象 autorelease 么?为什么?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/21) 34 | * [自动释放池的作用是什么](https://github.com/tbfungeek/iOS-Daily-Interview/issues/22) 35 | * [AutoreleasePool drain 和 release区别](https://github.com/tbfungeek/iOS-Daily-Interview/issues/23) 36 | 37 | ****循环引用,内存泄漏相关**** 38 | 39 | * [日常开发中有哪些可能会出现的循环引用?又该怎样解决这些问题](https://github.com/tbfungeek/iOS-Daily-Interview/issues/24) 40 | * [内存泄漏有几种类型?有哪些排查方式](https://github.com/tbfungeek/iOS-Daily-Interview/issues/25) 41 | 42 | ### 1.2 分类扩展与协议相关 43 | 44 | * [分类的作用有哪些?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/26) 45 | * [分类与扩展的区别?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/27) 46 | * [通过分类可以为某个类添加哪些东西?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/28) 47 | * [分类的实现原理?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/29) 48 | * [如何给分类添加属性?关联对象以什么形式进行存储?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/30) 49 | * [分类可不可以添加实例对象?为什么?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/31) 50 | * [分类在编译过后,是在什么时机与原有的类合并到一起的?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/32) 51 | * [分类与宿主类有同名方法会有什么结果?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/33) 52 | * [分类与其他分类有同名方法会有什么结果?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/34) 53 | * [协议可以添加属性吗?如果可以怎么添加。](https://github.com/tbfungeek/iOS-Daily-Interview/issues/35) 54 | 55 | ### 1.3 Block 相关 56 | 57 | * [说一下什么是Block?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/36) 58 | * [Block 和 函数指针 的区别? ](https://github.com/tbfungeek/iOS-Daily-Interview/issues/37) 59 | * [说下Block的对不同类型变量的捕获情况 ](https://github.com/tbfungeek/iOS-Daily-Interview/issues/38) 60 | * [Block 有几种类型?分别是什么?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/39) 61 | * [说说你对__block的理解,以及forwarding的作用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/40) 62 | * [对不同类型的block进行copy操作结果分别是怎样的?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/41) 63 | * [哪些情况下block会被copy到堆上?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/42) 64 | * [__block 的解释以及在 ARC 和 MRC 下有什么不同?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/43) 65 | * [dispatch_block_t这个有没有用过?解释一下?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/44) 66 | 67 | ### 1.4 Runtime相关 68 | 69 | * [实例对象的数据结构?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/45) 70 | * [类对象及元类对象的数据结构?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/46) 71 | * [Obj-C 对象、类的本质是通过什么数据结构实现的? ](https://github.com/tbfungeek/iOS-Daily-Interview/issues/47) 72 | * [Obj-C 中的类信息存放在哪里?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/48) 73 | * [一个 NSObject 对象占用多少内存空间?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/49) 74 | * [说一下对 class_rw_t 结构体的理解?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/50) 75 | * [说一下对 class_ro_t 的理解?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/51) 76 | * [说一下对 isa 指针的理解,对象的 isa 指针指向哪里? isa 指针有哪两种类型?(注意区分不同对象)](https://github.com/tbfungeek/iOS-Daily-Interview/issues/52) 77 | * [说一下 Runtime 消息解析。](https://github.com/tbfungeek/iOS-Daily-Interview/issues/53) 78 | * [说一下 Runtime 消息转发。](https://github.com/tbfungeek/iOS-Daily-Interview/issues/54) 79 | * [说一下 Method Swizzling? 说一下在实际开发中你在什么场景下使用过? ](https://github.com/tbfungeek/iOS-Daily-Interview/issues/55) 80 | * [如何运用 Runtime 字典转模型?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/56) 81 | * [如何运用 Runtime 进行模型的归解档?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/57) 82 | * [在 Obj-C 中为什么叫发消息而不叫函数调用?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/58) 83 | * [说一下 Runtime 的方法缓存?存储的形式、数据结构以及查找的过程?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/59) 84 | * [是否了解 Type Encoding? ](https://github.com/tbfungeek/iOS-Daily-Interview/issues/60) 85 | * [Objective-C 如何实现多重继承?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/61) 86 | * [说说+load +initializer区别](https://github.com/tbfungeek/iOS-Daily-Interview/issues/62) 87 | * [说说Mach O的组成结构以及每个部分的作用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/63) 88 | * [说说点击App后到main方法经过的步骤](https://github.com/tbfungeek/iOS-Daily-Interview/issues/64) 89 | * [class方法和objc_getClass方法有什么区别?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/65) 90 | 91 | 92 | ### 1.5 KVC KVO 相关 93 | 94 | * [说下KVC与普通的实例变量存取方法的区别](https://github.com/tbfungeek/iOS-Daily-Interview/issues/66) 95 | * [说下KVC setValue:forKey:的搜索策略](https://github.com/tbfungeek/iOS-Daily-Interview/issues/67) 96 | * [说下KVC valueForKey:的搜索策略](https://github.com/tbfungeek/iOS-Daily-Interview/issues/68) 97 | * [说下KVC 常用的场景](https://github.com/tbfungeek/iOS-Daily-Interview/issues/69) 98 | * [介绍下KVO的原理](https://github.com/tbfungeek/iOS-Daily-Interview/issues/70) 99 | * [介绍下KVO的触发时机](https://github.com/tbfungeek/iOS-Daily-Interview/issues/71) 100 | * [说说什么时候需要手动触发KVO](https://github.com/tbfungeek/iOS-Daily-Interview/issues/72) 101 | 102 | ### 1.6 多线程相关 103 | 104 | * [介绍下iOS中的多线程的几种实现方案,及各自的特点](https://github.com/tbfungeek/iOS-Daily-Interview/issues/73) 105 | * [创建太多线程会有什么影响](https://github.com/tbfungeek/iOS-Daily-Interview/issues/74) 106 | * [说一下线程的生命周期](https://github.com/tbfungeek/iOS-Daily-Interview/issues/75) 107 | [](https://github.com/tbfungeek/iOS-Daily-Interview/issues/77) 108 | * [介绍下GCD的特点](https://github.com/tbfungeek/iOS-Daily-Interview/issues/76) 109 | * [说下任务和队列组成的四种组合的情况](https://github.com/tbfungeek/iOS-Daily-Interview/issues/78) 110 | * [介绍下GCD 任务组的作用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/79) 111 | * [介绍下dispatch_group_enter/dispatch_group_leave和dispatch_group_async各自的应用场景以及使用的时候需要注意哪些问题](https://github.com/tbfungeek/iOS-Daily-Interview/issues/80) 112 | * [介绍下dispatch_barrier_async的应用场景](https://github.com/tbfungeek/iOS-Daily-Interview/issues/81) 113 | * [介绍下你所知道的NSOperation 和 NSOperationQueue的相关内容](https://github.com/tbfungeek/iOS-Daily-Interview/issues/82) 114 | * [NSOperation如何实现串行](https://github.com/tbfungeek/iOS-Daily-Interview/issues/83) 115 | * [如何实现线性编程?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/84) 116 | * [说一下 GCD 并发队列实现机制?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/85) 117 | * [说一下你了解的iOS开发中的各种锁](https://github.com/tbfungeek/iOS-Daily-Interview/issues/86) 118 | * [NSLock使用的时候需要注意哪些](https://github.com/tbfungeek/iOS-Daily-Interview/issues/87) 119 | * [为什么需要递归锁,它解决的问题是什么](https://github.com/tbfungeek/iOS-Daily-Interview/issues/88) 120 | * [Synchronized 的实现机制](https://github.com/tbfungeek/iOS-Daily-Interview/issues/89) 121 | * [说说自旋锁与互斥锁的区别,以及自旋锁适用的场景](https://github.com/tbfungeek/iOS-Daily-Interview/issues/90) 122 | * [如何确保线程安全?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/91) 123 | * [atomic 在保证线程安全使用方面要注意哪些问题](https://github.com/tbfungeek/iOS-Daily-Interview/issues/92) 124 | * [NSMutableArray、和 NSMutableDictionary是线程安全的吗?NSCache呢?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/93) 125 | * [多线程的 并行 和 并发 有什么区别?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/94) 126 | * [多线程有哪些优缺点?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/95) 127 | * [如何自定义 NSOperation ? ](https://github.com/tbfungeek/iOS-Daily-Interview/issues/96) 128 | * [GCD 与 NSOperationQueue 有哪些异同?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/97) 129 | * [解释一下多线程中的死锁?,死锁的条件,以及死锁的解决方案](https://github.com/tbfungeek/iOS-Daily-Interview/issues/98) 130 | * [解释一下多线程中的优先级反转?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/99) 131 | * [子线程是否会出现死锁?说一下场景?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/100) 132 | * [多线程技术在使用过程中有哪些注意事项?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/101) 133 | 134 | ### 1.7 RunLoop相关 135 | 136 | * [Runloop 和线程的关系?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/102) 137 | * [讲一下 Runloop 的 Mode?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/103) 138 | * [讲一下 Observer ?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/104) 139 | * [讲一下 Source ?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/105) 140 | * [讲一下 Runloop 的内部实现逻辑?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/106) 141 | * [你所知的哪些三方框架使用了 Runloop?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/107) 142 | * [AutoreleasePool 在何时被释放?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/108) 143 | * [解释一下 事件响应 的过程?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/109) 144 | * [解释一下 手势识别 的过程?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/110) 145 | * [解释一下 GCD 在 Runloop 中的使用?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/111) 146 | * [解释一下 NSTimer与Runloop的关系。](https://github.com/tbfungeek/iOS-Daily-Interview/issues/112) 147 | * [AFNetworking 中如何运用 Runloop?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/113) 148 | * [PerformSelector 的实现原理?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/114) 149 | * [利用 Runloop 解释一下页面的渲染的过程?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/115) 150 | * [如何使用 Runloop 实现一个常驻线程?这种线程一般有什么作用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/116) 151 | * [为什么 NSTimer 有时候不好使?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/117) 152 | * [PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/118) 153 | * [介绍下定时执行有几种方式](https://github.com/tbfungeek/iOS-Daily-Interview/issues/119) 154 | * [如何检测 App 运行过程中是否卡顿?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/120) 155 | * [简单介绍下你所知道的Runloop的应用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/121) 156 | 157 | ### 1.8 UI 相关 158 | 159 | #### 1.8.1 生命周期相关 160 | 161 | * [介绍下应用有哪些状态](https://github.com/tbfungeek/iOS-Daily-Interview/issues/122) 162 | * [介绍下,冷启动,热启动,锁屏,解锁,按Home进入后台,其他应用中断了当前应用,重新回到当前应用这些情况都会调用哪些方法](https://github.com/tbfungeek/iOS-Daily-Interview/issues/123) 163 | * [应用如何在后台保活](https://github.com/tbfungeek/iOS-Daily-Interview/issues/124) 164 | * [介绍下应用的生命周期](https://github.com/tbfungeek/iOS-Daily-Interview/issues/125) 165 | * [介绍下UIView的生命周期](https://github.com/tbfungeek/iOS-Daily-Interview/issues/126) 166 | * [介绍下UIViewController的生命周期](https://github.com/tbfungeek/iOS-Daily-Interview/issues/127) 167 | * [loadView方法了解吗?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/128) 168 | * [说一下控制器 View 的生命周期,一旦收到内存警告会如何处理?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/129) 169 | * [说下什么情况下会触发约束的自动更新,怎么手动更新约束](https://github.com/tbfungeek/iOS-Daily-Interview/issues/130) 170 | * [说下什么情况下会触发布局的自动更新,怎么手动更新布局](https://github.com/tbfungeek/iOS-Daily-Interview/issues/131) 171 | * [说下什么情况下会自动触发绘制,怎么手动触发绘制](https://github.com/tbfungeek/iOS-Daily-Interview/issues/132) 172 | 173 | #### 1.8.2 渲染相关 174 | 175 | * [简要介绍下iOS 渲染框架组成](https://github.com/tbfungeek/iOS-Daily-Interview/issues/133) 176 | * [为什么要存在UIView和CALayer,说说它们的区别及联系](https://github.com/tbfungeek/iOS-Daily-Interview/issues/134) 177 | * [介绍下绘制流程](https://github.com/tbfungeek/iOS-Daily-Interview/issues/135) 178 | * [说下渲染的整个过程,以及CPU,GPU各做了哪些工作](https://github.com/tbfungeek/iOS-Daily-Interview/issues/136) 179 | * [说下什么是离屏渲染,触发离屏渲染的因素,为什么离屏渲染会比较耗时,要如何解决这些问题](https://github.com/tbfungeek/iOS-Daily-Interview/issues/137) 180 | * [说说绘图上下文的作用,iOS有哪些绘图上下文类型](https://github.com/tbfungeek/iOS-Daily-Interview/issues/138) 181 | * [CGContextSaveGState/CGContextRestoreGState 与 UIGraphicsPushContext/UIGraphicsPopContext区别](https://github.com/tbfungeek/iOS-Daily-Interview/issues/139) 182 | * [CGPath 和 UIBezierPath() 区别](https://github.com/tbfungeek/iOS-Daily-Interview/issues/140) 183 | 184 | #### 1.8.3 布局相关 185 | 186 | * [简要介绍下frame, bounds, position,center,anchorPoint这些属性](https://github.com/tbfungeek/iOS-Daily-Interview/issues/141) 187 | * [有哪几种布局方式](https://github.com/tbfungeek/iOS-Daily-Interview/issues/142) 188 | * [说说AutoLayout 工作原理](https://github.com/tbfungeek/iOS-Daily-Interview/issues/143) 189 | * [说说bounds 和 Frame 的区别?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/144) 190 | * [说说你知道的三方布局开源库,简要对比下,它们的优缺点](https://github.com/tbfungeek/iOS-Daily-Interview/issues/145) 191 | * [UITableViewCell 如何根据 UILabel 内容长度自动调整高度](https://github.com/tbfungeek/iOS-Daily-Interview/issues/146) 192 | 193 | #### 1.8.4 动画相关 194 | 195 | * [简要介绍下动画所涉及到的哪些类,它们的继承关系是怎样的](https://github.com/tbfungeek/iOS-Daily-Interview/issues/147) 196 | * [说说动画的事务管理](https://github.com/tbfungeek/iOS-Daily-Interview/issues/148) 197 | * [什么情况下会有隐式动画,为什么会有隐式动画](https://github.com/tbfungeek/iOS-Daily-Interview/issues/149) 198 | * [说说presentingViewController和presentedViewController的区别](https://github.com/tbfungeek/iOS-Daily-Interview/issues/150) 199 | * [如何暂停一个 UIView 中正在播放的动画?暂停后如何恢复?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/151) 200 | 201 | #### 1.8.5 事件相关 202 | 203 | * [说说iOS有哪些事件源类型](https://github.com/tbfungeek/iOS-Daily-Interview/issues/152) 204 | * [哪些对象能够响应事件,这些对象的共同点是什么?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/153) 205 | * [说说touchesBegan/touchesMoved/touchesEnded/touchesCancelled的作用](https://github.com/tbfungeek/iOS-Daily-Interview/issues/154) 206 | * [说说iOS上的事件对象有哪些相关的类,它们之间的关系是怎样的?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/155) 207 | * [介绍下事件的传递流程](https://github.com/tbfungeek/iOS-Daily-Interview/issues/156) 208 | * [介绍下构建响应链的流程,及事件响应流程](https://github.com/tbfungeek/iOS-Daily-Interview/issues/157) 209 | * [说下手势有哪些状态?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/158) 210 | * [说下事件和手势共存的情况下的事件处理流程](https://github.com/tbfungeek/iOS-Daily-Interview/issues/159) 211 | * [说下常见的事件冲突和解决方案](https://github.com/tbfungeek/iOS-Daily-Interview/issues/160) 212 | 213 | ### 1.9 其他 214 | 215 | * [UIButton 的父类是什么?UILabel 的父类又是什么?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/161) 216 | * [实现一个控件,可以浮在任意界面的上层并支持拖动?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/162) 217 | * [如何以通用的方法找到当前显示的ViewController?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/163) 218 | * [setNeedsDisplay 和 layoutIfNeeded 两者是什么关系?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/164) 219 | * [nil、NIL、NSNULL 有什么区别?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/165) 220 | * [如何实现一个线程安全的 NSMutableArray?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/166) 221 | * [atomic 修饰的属性是绝对安全的吗?为什么?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/167) 222 | * [实现 isEqual 和 hash 方法时要注意什么](https://github.com/tbfungeek/iOS-Daily-Interview/issues/168) 223 | * [id 和 instanceType 有什么区别?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/169) 224 | * [说一下对 Super 关键字的理解](https://github.com/tbfungeek/iOS-Daily-Interview/issues/170) 225 | * [@synthesize 和 @dynamic 分别有什么作用?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/172) 226 | * [头文件导入的方式?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/175) 227 | * [如何将 Obj-C 代码改变为 C++/C 的代码?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/176) 228 | * [如何定义一台 iOS 设备的唯一性?](https://github.com/tbfungeek/iOS-Daily-Interview/issues/178) 229 | 230 | ## 二. iOS高级面试题 231 | 232 | ### 2.1 性能优化相关 233 | 234 | ### 2.2 动态化相关 235 | 236 | ### 2.3 组件化相关 237 | 238 | ### 2.4 热修复相关 239 | 240 | 241 | ## 三. iOS三方开源库相关面试题 242 | 243 | 244 | ## 四. 通用技术相关 245 | 246 | ### 4.1 网络相关 247 | 248 | ### 4.2 设计模式相关 249 | 250 | ### 4.3 架构相关 251 | 252 | ### 4.4 数据结构/算法相关 253 | 254 | 255 | ## 五. 面试前必读材料 256 | 257 | ### 4.1 源码类 258 | 259 | ### 4.2 博客类 260 | 261 | ### 4.3 开源库 262 | 263 | ### 4.4 书籍 264 | -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tbfungeek/iOS-Interviews/a82227b12160149679d7cbce27ed7dddc831fbfb/images/logo.png --------------------------------------------------------------------------------