在 Objective-C 以及其他很多动态语言当中,自省是一种用于判断对象是哪个类型的对象,以及这个对象能处理哪个消息的方法,特别是当你得到的对象是id
类型时,自省更显得尤其有用。
类
- class
返回接受者类的类对象- isKindOfClass:
返回一个布尔值,指示接受者是不是一个给定类(或者其子类)的实例- isMemberOfClass:
返回一个布尔值,指示接受者是不是给定类的实例
消息
-respondsToSelector:
返回一个布尔值,指示接受者是否实现或者继承了父类的方法,可以对给定的消息进行处理。
代理
代理是一种用于替代其他对象或者替代还没有出现的对象的对象。通常情况下,传给代理的消息会被传递给真正的对象,或者使得代理去加载真正的对象。
-isProxy
返回一个布尔值,指示接受者是不是继承自NSObject
(?)