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