iOS难点顿悟

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有点类似于伴随整个应用运行过程中的主线程,负责事件驱动,当有消息的时候,立刻被唤醒处理消息,当没有消息的时候,暂时挂起休息,减少资源的消耗。

4.蓝牙
蓝牙技术步骤.png

你可能感兴趣的:(iOS难点顿悟)