c语言中int sel是什么意思,SEL数据类型,@selector的用法,以及调用SEL

您所在的位置:网站首页 arrayc语言什么意思 c语言中int sel是什么意思,SEL数据类型,@selector的用法,以及调用SEL

c语言中int sel是什么意思,SEL数据类型,@selector的用法,以及调用SEL

2023-08-21 07:22| 来源: 网络整理| 查看: 265

1.SEL数据类型

SEL是个指针类型的数据,类似C语言中的函数指针。在OC中,每个对象方法都有其对应着一个SEL变量。当我们调用对象方法时,编译器会将该方法转换成一个SEL的数据,然后去类中寻找该方法对于的SEL。(这里涉及的深层原理本文没有深究,本文仅仅将SEL以及@selector的使用)

2.@selector的用法

@selector(方法名),该函数返回一个SEL类型的数据,因此可以这样使用。假设Person类中有一对象方法叫做run()。而我们可以这样调用它:

SEL f1 = @selector(run);

Person* Tom = [[Person alloc] init];

[Tom performSelector:f1]; // 调用run方法

3.调用SEL

每个方法都有自己的一个SEL变量成_cmd,在方法内部调用它,可以打印出该方法名。具体方法如下:

- (void)test

{

NSLog("%@", NSStringFromSelector:_cmd); // 打印出:test

}

原理是调用NSStringFromSelector将_cmd转换成字符串再打印。同时performSelector还有传入参数的版本,具体请参考Xcode中的OC文档。

总结:SEL就是一个数据类型,调用@selector()可以将任何数据转换成SEL数据,同时调用performSelector系列的对象方法可以调用SEL对应的方法。

SEL数据类型

// //  main.m //  0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3