1.runtime理解
Objective-C是一门基于C语言的面向对象的动态语言,但是C语言没有面向对象的概念,所以除了编译器外,还就需要runtime机制去动态的创建对象,进行消息的发送和转发
runtime的使用:
- 使用Method Swizzling(黑魔法)替换系统的方法:有个需求需要统计一个控制器出现的次数,使用runtime的替换方法改变viewWillAppear系统方法的实现。
- 使用runtime对属性进行获取与赋值,利用runtime可以自己写一个Json解析的三方库
- JSPatch利用的也是runtime机制,使js就可以调用OC的原生库。
2.UITableView的优化
- Cell的重用
- 尽量不要在Cell里面做动画,因为动画相对来说还是比较耗时
- 避免Cell里面View及其子类View的背景色为透明,应为透明色在绘制的时候会比正常色多绘制一遍。
- 如果Cell是不等高的cell,最好可以缓存Cell的高度。
3.RunLoop
理解:
runtime负责创建对象,消息的发送与转发, runLoop有点类似于伴随整个应用运行过程中的主线程,负责事件驱动,当有消息的时候,立刻被唤醒处理消息,当没有消息的时候,暂时挂起休息,减少资源的消耗。
网友评论