苹果的底层是C语言,OC是基于C的再次封装,加了一些关键字和语法等,他的本质是消息分发。
runtime能干什么:在程序运行时可以获取当前类的所有:对象、方法、属相,成员变量,并且能够随时去改变它。
消息分发:发消息之前不用管那个对象能够处理消息,一个消息不必对应一个方法,一个对象可能实现一个方法来处理多条消息。收到之后再去分配给对象。在OC中是通过objc_msgSend()来实现的。
实例:比如我要循环获取符合条件的某个对象,我可以直接用NSSelectorFromString获取符合条件的字符串对象,在进行相应的操作,不要在一次一次的去if else了。
Method Swizzling(交换方法):实例,在友盟分享的页面统计上。
一些扩展类比较常用运行时,扩展类跟定要获取扩展的对象,此时用runTime是最好的。