在 Objective-C 以及其他很多动态语言当中,自省是一种用于判断对象是哪个类型的对象,以及这个对象能处理哪个消息的方法,特别是当你得到的对象是id类型时,自省更显得尤其有用。

- class 返回接受者类的类对象
- isKindOfClass: 返回一个布尔值,指示接受者是不是一个给定类(或者其子类)的实例
- isMemberOfClass: 返回一个布尔值,指示接受者是不是给定类的实例

消息

-respondsToSelector: 返回一个布尔值,指示接受者是否实现或者继承了父类的方法,可以对给定的消息进行处理。

代理

代理是一种用于替代其他对象或者替代还没有出现的对象的对象。通常情况下,传给代理的消息会被传递给真正的对象,或者使得代理去加载真正的对象。

-isProxy 返回一个布尔值,指示接受者是不是继承自NSObject(?)