一些面试题总结,希望对你有帮助,同时希望你能来一起完善它! 如果你也在面试中遇到什么问题,或者想要找到更多的交流资源! iOS开发者的交流群:551346706 ! 欢迎你的加入
- 一、分类
- 二、扩展
- 三、代理(Delegate)
- 四、通知(NSNotification)
- 五、KVO (Key-value observing)
- 六、KVC(Key-value coding)
- 七、属性关键字
- 一、RunLoop概念
- 二、RunLoop的数据结构
- 三、RunLoop的Mode
- 四、RunLoop的实现机制
- 五、RunLoop与NSTimer
- 六、RunLoop和线程
- objc在向一个对象发送消息时,发生了什么?
- objc中向一个nil对象发送消息将会发生什么?
- objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?
- 什么时候会报unrecognized selector的异常?
- 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
- 给类添加一个属性后,在类结构体里哪些元素会发生变化?
- 一个objc对象的isa的指针指向什么?有什么作用?
- [self class] 与 [super class]
- runtime如何通过selector找到对应的IMP地址?
- _objc_msgForward函数是做什么的,直接调用它将会发生什么?
- runtime如何实现weak变量的自动置nil?知道SideTable吗?
- isKindOfClass 与 isMemberOfClass
- 使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?
- 什么是method swizzling(俗称黑魔法)
- Compile Error / Runtime Crash / NSLog…?
- 代码题(一)
- 代码题(二)
- 一、UIView与CALayer
- 二、事件传递与视图响应链
- 三、图像显示原理
- 四、UI卡顿掉帧原因
- 五、滑动优化方案
- 六、UI绘制原理
- 七、离屏渲染
- 一、什么是Block?
- 二、Block变量截获
- 三、Block的几种形式
- 一、 进程
- 二、 线程
- 三、 进程和线程的关系
- 四、 多进程
- 五、 多线程
- 六、任务
- 七、队列
- 八、iOS中的多线程
- 九、GCD---队列
- 十、死锁
- 十一、GCD任务执行顺序
- 十二、dispatch_barrier_async
- 十三、dispatch_group_async
- 十四、Dispatch Semaphore
- 十五、延时函数(dispatch_after)
- 十六、使用dispatch_once实现单例
- 十七、NSOperationQueue的优点
- 十八、NSOperation和NSOperationQueue
- 十九、NSThread+runloop实现常驻线程
- 二十、自旋锁与互斥锁
- 一、内存布局
- 二、内存管理方案
- 三、MRC(手动引用计数)和ARC(自动引用计数)
- 四、循环引用
- 1、不用中间变量,用两种方法交换A和B的值
- 2、求最大公约数
- 3、模拟栈操作
- 4、排序算法
- 5、折半查找(二分查找)
- 6、集合结构 线性结构 树形结构 图形结构
- 7、数据结构的存储
- 8、单向链表\双向链表\循环链表
- 9、二叉树/平衡二叉树
- 10、过河经典问题,超详细解析
- 11、字符串反转
- 12、有序数组合并
- 13、HASH算法
- 14、查找两个子视图的共同父视图
- 15、求无序数组中的中位数
- 一、请求报文和响应报文
- 二、HTTP的请求方式
- 三、HTTP的特点
- 四、HTTPS和HTTP的区别
- 五、HTTPS的连接建立流程
- 六、对称加密和非对称加密
- 七、分别用C语言、python、GCDAsyncUdpSocket来实现UDP通信
- 八、利用python实现Udp通信demo
- 九、iOS端基于UDP的简易聊天demo
- 1.基本概念
- 2.怎么检测离屏渲染:
- 3.怎么检测图层混合:
- 4.光栅化
- 5.入门级
- 6.中级
- 7.高级