判断类是否实现了某方法 —— respondsToSelector

来源:互联网 发布:二次元腐女软件 编辑:程序博客网 时间:2024/06/06 10:47

转载自:http://www.cnblogs.com/chenjunbiao/archive/2011/04/21/2023196.html

Tester.h

#import <Foundation/Foundation.h>@interface Tester : NSObject {    }-(void) test:(NSString*) msg;-(void) notImp;@end

Tester.m

#import "Tester.h"@implementation Tester-(void) test:(NSString*) msg{    NSLog(@"%@", msg);}@end

main.m

#import <Foundation/Foundation.h>#import "Tester.h"int main (int argc, const char * argv[]){    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];    id tester = [[Tester alloc] init];//注意,这里使用id        SEL testSelector = @selector(test:);    SEL notImpSelector = @selector(notImp:);        if([tester respondsToSelector:testSelector])    {        //tester.m中实现了test方法        [tester test:@"invoke test method"];    }    if([tester respondsToSelector:notImpSelector])    {        //test.m中没有实现此主就去        [tester notImp];    }        [pool drain];    return 0;}




原创粉丝点击