代表方法的签名
SEL sel = @selector(setAge:);
Person * p = [Person new];
BOOL flag = [p respondsToSelector:sel];
类调用就判断类方法 对象使用就是用对象调用
SEL sel = @selector(setAge:);
Person * p = [Person new];
[p performSelector:sel];
配合对象调用方法
参数只能是对象,如果参数多余两个不能调用
根据对象调用制定方法和制定参数
作为方法的形参
//问题1:SEL是什么类型?
答:
数据类型
SEL类型代表着方法的签名,在类对象的方法列表中存储着该签名与方法代码的对应关系
//问题2:SEL有什么作用?
答:
SEL类型的第一个作用, 配合对象/类来检查对象/类中有没有实现某一个方法
SEL类型的第二个作用, 配合对象/类来调用某一个SEL方法
配合对象将SEL类型作为方法的形参
把方法打包成一个具有SEL签名的对象
//问题3:哪个方法是用来检验对象是否实现了某个方法?
答:
[perfrom]
判断实例是否实现某个对象方法
- (BOOL)respondsToSelector: (SEL)selector
判断类是否实现某个类方法
+ (BOOL)instancesRespondToSelector:(SEL)aSelector;
//问题4:哪些方法是用来调用对象中SEL类型对应的方法?
答:
perfromSelectToWith:
让对象执行某个方法
- (id)performSelector:(SEL)aSelector;
- (id)performSelector:(SEL)aSelector withObject:(id)object;
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
SEL类型
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 类的本质 本质类其实也是一个 对象, 这个对象会在这个类第一次被使用的时候创建, 一个类再内存中只有一份类对象只要...
- 1.什么是SEL类型 SEL类型代表着方法的签名,在类对象的方法列表中存储着该签名与方法代码的对应关系 每个类的方...
- 类的加载过程知识体系: 【掌握】+load方法【掌握】+initialize方法1.+load方法 在程序启动的时...