iOS常见面试题
- 属性的关键字
- 浅拷贝和深拷贝的区别
- Block的循环引用、如何解决、原理
- 三种Block
- Block和delegate的比较
- kvo的实现原理
- AutoreleasePool的实现原理
- 消息转发机制
- 线程死锁的四个条件
- 进程和线程的区别
- 持久化
- 事务的特征
- 性能优化
- YYModel和AF源码
- 如何自救设计json转model
- 架构
- 主线程是相对于什么而言的
- 一张图片的内存占用大小是由什么决定的
- 索引的作用
- 索引的优缺点
- 在数组中找最小的k个数
- 介绍一下MVVM
- 设计模式
- 消息的调用过程
- http有哪些部分
- tcp和udp的区别
- 网络七层模型
- 响应链
- 如何扩大view的响应范围
- 如何通过一个view查找它所在的ViewController
- 微信分享大图如何实现,从进程的角度
- 进程间的通信方式,并举例
- 两个进程分别指向同一个地址空间并初始化一个值,分别输出什么
- 拥塞控制
- UDP可以实现一对多
- 如何访问并修改一个类的私有属性?
- Extension是什么?
- 如何把一个包含自定义对象的数组序列化到磁盘?
- 沙盒目录结构是怎样的?App Bundle里面都有什么?
- 签名机制大概是怎样的?
- UIScrollview大概是如何实现的,它是如何捕捉,响应手势的?
- Method Swizzling
- +load 和 +initialize 的区别是什么?
- 如何让Category支持属性(关联对象)?
- NSOperation相比于GCD有哪些优势?
- strong/weak/unsafe_unretained的区别?
- 如何为Class定义一个对外只读对内可读可写的属性?
- UIView和CALayer的关系?
- +[UIView animateWithDuration:animations:completion:]内部大概是如何实现的?
- 什么时候会发生 隐式动画?
- 如何处理异步的网络请求?
- frame和bounds的区别是什么?
- 如何把一张大图缩小为1/4大小的缩略图?
- RunLoop
- Toll-Free Briding是什么?什么情况下会使用?
- 当系统出现内存警告时会发生什么?
- 什么是protocol,delegate一般是怎么用的?
- autoreleasepool在什么情况下会被释放?
- 为什么UIScrollview的滚动会导致NSTimer失效?
- 为什么当Core Animation完成时,layer又会恢复到原先的状态?
- 你会如何存储用户的一些敏感信息,如登录的token?
- 什么时候会发生 Bad Access异常?