NSObject協(xié)議和類定義了很多內(nèi)省方法,有效的避免錯誤的進行消息派發(fā)、錯誤的假設對象相等、以及類似的問題。
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
檢查對象是否符合協(xié)議,是否實現(xiàn)了協(xié)議中所有的必選方法。
參考文章:http://blog.csdn.net/u014536527/article/details/51010973