必备知识架构
–
知识架构
iOS知识库
Android知识库
2020年iOS面试反思总结–不断更新当中ing
2020年iOS面试反思总结–不断更新当中ing
# 目录
* [一、为什么说Objective-C是一门动态的语言?](#Objective-C)
1 2 3 4 5
| >线程间通信的体现: >1. 一个线程传递数据给另一个线程 >2. 在一个线程中执行完特定任务后,转到另一个线程继续执行任务
>附:其他传值方法总结
|
1 2 3 4 5 6 7
| 1、通常的做法/不合理的做法 2、合理的做法(使用多线程异步执行) 1)、先说说简单的多线程同步问题(异步线程里没有再开启异步线程) 2)、真正的线程同步问题(异步线程里再开启异步线程) 3)、其他补充 附1:多个请求依次执行 附2:并发数控制
|
1 2 3
| 1、SDWebImage在图片下载及缓存的处理方法 2、SDWebImageDownloader 异步的图片下载器 3、SDWebImageDownloaderOperation 下载操作
|
1 2 3
| 1、一次完整的HTTP请求过程 2、TCP三次握手 3、TCP四次挥手
|
1 2 3 4 5 6 7 8 9
| 附:整个响应链及事件链 1、完善响应链查找知识点 2、基础概念等详解 2.1 响应者对象(UIResponder) 2.2、UITouch(点击对象) 2.2.1、UITouch的几个主要属性和方法 2.2.2、UITouch的生成场景 2.3、UIEvent(事件对象) 3、响应链的应用
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| 1、RunLoop概念
2、RunLoop和线程的关系?
3、RunLoop相关各类关系 3.1 CFRunLoopSourceRef 3.1.附 上题中button点击后,关于RunLoop的过程 3.2 CFRunLoopTimerRef 3.3 CFRunLoopObserverRef
4、RunLoop的应用 附:autoreleasepool 自动释放池 runloop、autorelease pool以及线程之间的关系
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 1、内存管理 (1)、在ObjC中,对象什么时候会被释放(或者对象占用的内存什么时候会被回收利用)? (2)、那怎么知道对象已经没有被引用了呢? (3)、autorelease、autoreleasepool(自动释放池) (4)、autoreleasepool(自动释放池) (5)、autoreleasepool里面对象的内存什么时候释放? (6)、runloop、autorelease pool以及线程之间的关系 (7)、自动释放池怎样创建 (8)、自动释放池使用注意 (9)、自动释放池的应用/什么时候要用@autoreleasepool
2、如何监测内存泄漏
3、循环引用 (1)、NSTimer的循环引用 (2)、block的循环引用 (2.1)、Objective-C中block为何得用copy修饰,能否用其他 (2.2)、block的循环引用 (2.3)、判断该block是否会发生循环引用 (2.4)、为什么masonry的block里引用self不需要weak? (3)、委托delegate的循环引用
|
1 2 3 4 5 6 7
| 1、NSTimer和NSRunLoop的关系? 2、NSTimer使用细节 3、NSTimer的创建 4、NSTimer的循环引用 5、NSTimer使用的优化 6、NSTimer的销毁问题 6.1子线程中NSTimer的创建和销毁问题
|
- 十一、谈谈设计模式
- 十二、如何优化过于臃肿的Controller
- 十三、谈谈性能优化(功耗)
- 十四、UITableView的优化、重用
- 十五、布局 layoutsubview、drawrect等
- 十六、有逼格的代码
- 十七、单元测试
- 十八、APP审核