转自: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 ;
}