黑马程序员技术交流社区

标题: sel [打印本页]

作者: 1722413885    时间: 2014-4-21 16:18
标题: sel
SEL s = @selector(test);中sel是什么,本质是什么,是内存地址吗?

作者: 杨晓斌    时间: 2014-4-21 16:53
每个类的方法都存放在类的对象之中,而每个方法都有一个sel类型的数据与之相对应,可以根据sel数据找到与之对应的方法地址然后调用。可以理解 @selector()就是取类方法的编号,他的行为基本可以等同C语言的中函数指针而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取.它的结果是一个sel类型。这个类型本质是类方法的函数地址。

作者: 微尘•逐梦    时间: 2014-4-21 16:54
SEL是数据类型,就代表了方法,在内存中每一个方法都对应一个SEL数据,SEL对应方法的地址。
作者: 魅影穿眸    时间: 2014-4-25 13:31
SEL 类成员方法的指针
可以理解 @selector()就是取类方法的编号,他的行为基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取.
它的结果是一个SEL类型。这个类型本质是类方法的编号(函数地址)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2