代表方法的签名
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类型
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 类的本质 本质类其实也是一个 对象, 这个对象会在这个类第一次被使用的时候创建, 一个类再内存中只有一份类对象只要...
- 1.什么是SEL类型 SEL类型代表着方法的签名,在类对象的方法列表中存储着该签名与方法代码的对应关系 每个类的方...
- 类的加载过程知识体系: 【掌握】+load方法【掌握】+initialize方法1.+load方法 在程序启动的时...