判断对象能否响应指定的方法
2015-09-29 16:50
423 查看
#import <Foundation/Foundation.h> #import "Dog.h" int main(int argc, const char * argv[]) { @autoreleasepool { // 动态类型检测的第二部分 // 1. 方法响应的检测 Animal *ani = [Animal new]; // 判断,如果ani 能够调用 eat方法,然后就调用 //[(Dog *)ani eat]; // 1)判断实例对象能否响应(调用)指定方法 SEL s1 = @selector(eat); // 把eat包装成SEL类型 BOOL isRespond = [ani respondsToSelector:s1]; NSLog(@"isRespond = %d", isRespond); if (isRespond) { [(Dog *)ani eat]; } else{ NSLog(@"该对象不能调用此方法"); } // 2)判断类中有没有(调用)指定的方法 // 1 isRespond = [Dog instancesRespondToSelector:s1]; NSLog(@"isRespond = %d", isRespond); // 1 Dog类中虽然没有run方法,但是Dog类继承自Animal类,Animal类中有run方法 isRespond = [Dog instancesRespondToSelector:@selector(run)]; NSLog(@"isRespond = %d", isRespond); } return 0; }
相关文章推荐
- Objective-C的内省(Introspection)用法小结
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中NSNumber与NSDictionary的用法简介
- Objective-C中NSLog输出格式大全
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码
- 以实例讲解Objective-C中的KVO与KVC机制
- objective-c中生成随机数的方法
- 在Swift中使用Objective-C编写类、继承Objective-C类
- Swift能代替Objective-C吗?
- Objective-C 消息传递机制详解
- 在一个项目中同时使用Swift和Objective-C代码混合编程的方法
- vm安装mac os x 10.7 lion
- objective-c(一)
- objective-c(二)
- objective-c(三)
- objective-c(四)-基本数据类型以及循环和选择结构