#import "Student.h"
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person * p = [Person new];
Student * s = [Student new];
Student * s1 = [Student new];
if ([p respondsToSelector:NSSelectorFromString(@"run")]) {
[p run];
};
// IMP 指向方法的地址, 只是一个地址(void *)类型.
IMP imp = [Student instanceMethodForSelector:NSSelectorFromString(@"study")];
NSLog(@"%p", imp);
void (*func)(id, SEL) = (void *)imp;
NSLog(@"%p", func);
func(s, NSSelectorFromString(@"study"));
BOOL flag = [Student instancesRespondToSelector:@selector(study)];
NSLog(@"%d", flag);
//类方法能不能判断?
NSLog(@"%d", [Student instancesRespondToSelector:@selector(test)]);
//结果 = 0 , 不能判断...
}
return 0;
}