必备知识架构

知识架构

iOS知识库

Android知识库

2020年iOS面试反思总结–不断更新当中ing

2020年iOS面试反思总结–不断更新当中ing

目录

1
2
>
>
1
2
3
4
5
6
>线程间通信的体现:
>1. 一个线程传递数据给另一个线程
>2. 在一个线程中执行完特定任务后,转到另一个线程继续执行任务
>
>附:其他传值方法总结
>
1
2
3
4
5
6
7
8
1、通常的做法/不合理的做法
2、合理的做法(使用多线程异步执行)
1)、先说说简单的多线程同步问题(异步线程里没有再开启异步线程)
2)、真正的线程同步问题(异步线程里再开启异步线程)
3)、其他补充
附1:多个请求依次执行
附2:并发数控制
>
1
2
...
>
1
2
3
4
1、SDWebImage在图片下载及缓存的处理方法
2、SDWebImageDownloader 异步的图片下载器
3、SDWebImageDownloaderOperation 下载操作
>
1
2
3
4
1、一次完整的HTTP请求过程
2、TCP三次握手
3、TCP四次挥手
>
1
2
3
4
5
6
7
8
9
10
附:整个响应链及事件链
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
14
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
22
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
8
1、NSTimer和NSRunLoop的关系?
2、NSTimer使用细节
3、NSTimer的创建
4、NSTimer的循环引用
5、NSTimer使用的优化
6、NSTimer的销毁问题
6.1子线程中NSTimer的创建和销毁问题
>
  • 十一、谈谈设计模式
  • 十二、如何优化过于臃肿的Controller
  • 十三、谈谈性能优化(功耗)
  • 十四、UITableView的优化、重用
  • 十五、布局 layoutsubview、drawrect等
  • 十六、有逼格的代码
  • 十七、单元测试
  • 十八、APP审核