您的位置:首页 > 其它

对象方法响应判断...类方法没得判断...respondsToSelector instancesRespondToSelector | instanceMethodForSelector

2016-01-08 10:38 369 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: