首页 > 代码库 > NSObject的常见方法
NSObject的常见方法
代码:
#import <Foundation/Foundation.h>/****************************** * Learning协议 ******************************/@protocol Learning- (void)learn;@end/****************************** * Person类 ******************************/@interface Person : NSObject@end@implementation Person@end/****************************** * Student类 ******************************/@interface Student : Person <Learning>@end@implementation Student- (void)learn { NSLog(@"Student - learn");}@end/****************************** * GoodStudent类 ******************************/@interface GoodStudent : Student@end@implementation GoodStudent- (void)learn { NSLog(@"GoodStudent - learning");}@endvoid isKindOfClassTest(void);void isMemberOfClassTest(void);void conformsToProtocolTest(void);void instanceResopnsesToSelectorTest(void);void respondsToSelectorTest(void);/****************************** * main函数 ******************************/int main(int argc, const char* argv[]) { isKindOfClassTest(); isMemberOfClassTest(); conformsToProtocolTest(); instanceResopnsesToSelectorTest(); respondsToSelectorTest(); return 0;}void isKindOfClassTest(void) { Student* student = [[Student alloc] init]; // 实例方法isKindOfClass:用于判断一个实例是否是某个类或其子类的实例 NSLog([student isKindOfClass:[Person class]] ? @"YES" : @"NO"); NSLog([student isKindOfClass:[Student class]] ? @"YES" : @"NO"); NSLog([student isKindOfClass:[GoodStudent class]] ? @"YES" : @"NO");}void isMemberOfClassTest(void) { Student* student = [[Student alloc] init]; // 实例方法isMemberOfClass:用于判断一个实例是否是某个类实例 NSLog([student isMemberOfClass:[Person class]] ? @"YES" : @"NO"); NSLog([student isMemberOfClass:[Student class]] ? @"YES" : @"NO"); NSLog([student isMemberOfClass:[GoodStudent class]] ? @"YES" : @"NO");}void conformsToProtocolTest(void) { Person* person = [[Person alloc] init]; Student* student = [[Student alloc] init]; GoodStudent* goodStudent = [[GoodStudent alloc] init]; // 实例方法conformsToProtocol:用于判断一个类是否采用了某个协议 NSLog([person conformsToProtocol:@protocol(Learning)] ? @"YES" : @"NO"); NSLog([student conformsToProtocol:@protocol(Learning)] ? @"YES" : @"NO"); NSLog([goodStudent conformsToProtocol:@protocol(Learning)] ? @"YES" : @"NO");}void instanceResopnsesToSelectorTest(void) { // 类方法instancesRespondToSelector:用于判断一个类的实例是否可以响应给定的消息 NSLog([Person instancesRespondToSelector:@selector(learn)] ? @"YES" : @"NO"); NSLog([Student instancesRespondToSelector:@selector(learn)] ? @"YES" : @"NO"); NSLog([GoodStudent instancesRespondToSelector:@selector(learn)] ? @"YES" : @"NO");}void respondsToSelectorTest(void) { Person* person = [[Person alloc] init]; Student* student = [[Student alloc] init]; GoodStudent* goodStudent = [[GoodStudent alloc] init]; // 实例方法respondsToSelector:用于判断某个类的实例是否可以响应给定的消息 NSLog([person respondsToSelector:@selector(learn)] ? @"YES" : @"NO"); NSLog([student respondsToSelector:@selector(learn)] ? @"YES" : @"NO"); NSLog([goodStudent respondsToSelector:@selector(learn)] ? @"YES" : @"NO");}
输出:
YESYESNONOYESNONOYESYESNOYESYESNOYESYES
NSObject的常见方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。