按照苹果的文档,分为三个层次:
第一层(最基本的):通常使用Objective C的面向对象,定义父类和子类,动态绑定和执行子类的方法,对objc runtime的初步利用
第二层:如果我们定义了protocol,而且还有@optional的方法,可以确定某个对象(的类)是否实现了它,或者这个对象属不属于某个类,使用methodForSelector获取实现等NSObject提供的方法
而最高级的用法,也就是直接调用objc_msgSend、objc_getClass之类的了,这个很强大,用好了有很大价值,但也不要乱用.