1、说一下OC的反射机制;
OC 的反射机制以及使用场景
2、block的实质是什么?有几种block?分别是怎样产生的?
iOS-Block本质
3、__block修饰的变量为什么能在block里面能改变其值?
__block可以用于解决block内部无法修改auto变量值的问题
__block不能修饰全局变量、静态变量(static)
编译器会将__block变量包装成一个对象
__block修改变量:age->__forwarding->age
__Block_byref_age_0结构体内部地址和外部变量age是同一地址
4、说一下线程之间的通信。
线程间的通信
5、你们应用的崩溃率是多少?
6、说一下hash算法。
7、NSDictionary的实现原理是什么?
NSDictionary的实现原理
8、你们的App是如何处理本地数据安全的(比如用户名的密码)?
iOS本地数据存储安全
9、遇到过BAD_ACCESS的错误吗?你是怎样调试的?
iOS EXC_BAD_ACCESS的本质详解以及僵尸模式调试
10、什么是指针常量和常量指针?
11、不借用第三个变量,如何交换两个变量的值?要求手动写出交换过程。
12、若你去设计一个通知中心,你会怎样设计?
13、如何去设计一个方案去应对后端频繁更改的字段接口?
14、KVO、KVC的实现原理
15、用递归算法求1到n的和
16、category为什么不能添加属性?
17、说一下runloop和线程的关系。
18、说一下autoreleasePool的实现原理。
19、说一下简单工厂模式,工厂模式以及抽象工厂模式?
20、如何设计一个网络请求库?
21、说一下多线程,你平常是怎么用的?
22、说一下UITableViewCell的卡顿你是怎么优化的?
23、看过哪些三方库?说一下实现原理以及好在哪里?
24、说一下HTTP协议以及经常使用的code码的含义。
25、设计一套缓存策略。
26、设计一个检测主线和卡顿的方案。
27、说一下runtime,工作是如何使用的?看过runtime源码吗?
28、说几个你在工作中使用到的线程安全的例子。
29、用过哪些锁?哪些锁的性能比较高?
30、说一下HTTP和HTTPs的请求过程?
31、说一下TCP和UDP
32、说一下静态库和动态库之间的区别
33、load和initialize方法分别在什么时候调用的?
34、NSNotificationCenter是在哪个线程发送的通知?
透彻理解 NSNotificationCenter 通知
NSNotificationCenter通知中心之多线程
35、用过swift吗?如果没有,平常有学习吗?
36、说一下你对架构的理解?
37、为什么一定要在主线程里面更新UI?