NSObject協(xié)議和類定義了很多內(nèi)省方法继控,有效的避免錯誤的進行消息派發(fā)抵代、錯誤的假設(shè)對象相等描沟、以及類似的問題预愤。
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