NSObject协议和类定义了很多内省方法,有效的避免错误的进行消息派发、错误的假设对象相等、以及类似的问题。
1、isKindOfClass:Class
// 检查对象是否是那个类或者其继承类实例化的对象
2、isMemberOfClass:Class
// 检查对象是否是那个类但不包括继承类实例化的对象
if ([item isKindClass:[NSData class]]) {
// ...
}
如果item是NSMutableData类实例化的对象,而该类是NSData类的子类,那么[item isKindOfClass:[NSData class]]的值也是TRUE,而[item isMemberOfClass:[NSData class]]的值为False。
如果item是NSData类实例化的对象,那么[item isMemberOfClass:[NSData class]]的值也是TRUE。
3、respondToSelector:selector
// 检查对象是否包含这个方法
4、conformsToProtocol:protocol
检查对象是否符合协议,是否实现了协议中所有的必选方法。
参考文章:http://blog.csdn.net/u014536527/article/details/51010973