NSObject的常见方法
来源:互联网 发布:做蛋糕的软件 编辑:程序博客网 时间:2024/05/29 12:52
代码:
#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
0 0
- NSObject的常见方法
- NSObject的常用方法
- NSObject的isEqual:方法
- NSObject 的 load 方法
- NSObject的内省方法
- NSObject的方法说明
- NSObject.h里的方法.
- iOS: NSObject的方法cancelPreviousPerformRequestsWithTarget:
- iOS: NSObject的方法class
- iOS: NSObject的方法classFallbacksForKeyedArchiver
- iOS: NSObject的方法classForKeyedUnarchiver
- iOS: NSObject的方法conformsToProtocol:
- NSObject类的定时方法。
- NSObject中常用的方法
- NSObject的isEqual方法初探
- iOS: NSObject的方法cancelPreviousPerformRequestsWithTarget:selector:object:
- [基础语法]1.NSObject的几个方法
- NSUserDefaults保存NSObject类型的方法
- Asp.net MVC中的ViewData与ViewBag
- 关注上帝的所想所爱,创造无限财富
- 如何用英文说明一种方法的优缺点(优点和缺点)
- POJ 1125 Floyd
- 使用Eclipse Memory Analyzer进行内存泄漏分析三部曲
- NSObject的常见方法
- RecyccleView 详解
- 肉鸡美眉跨平台DDoS组织
- 点击UITableView的cell展开收缩
- 《MonkeyRunner 原理剖析》第九章-MonkeyImage 实现原理 - 第一节 - 关键类作用及关系
- JabRef中文手册
- c++中.dll与.lib文件的生成与使用的详解
- 回调函数
- iPhone开发--隐藏navigationItem的左侧返回按钮