选择器
来源:互联网 发布:剑网三捏脸数据 编辑:程序博客网 时间:2024/04/26 15:23
//选择器是变量类型
SEL sel =@selector(memoryClear);
//选择器有点像函数指针,都能代表方法。
//选择器变量sel存储的是能唯一代表方法名的标识(1001)。
//@selector(方法名),@selector能取得标识方法名的那个唯一的标识
SEL sel =@selector(memoryClear);
//通过选择器可以直接调用私有方法。(不建议使用)
[xiaomingperformSelector:sel];
//通过performSelector方法可以调用选择器所代表的方法。
[xiaomingperformSelector:@selector(memoryClear)];
//通过选择器调用带一个参数的方法,参数写在withObject后
[xiaomingperformSelector:@selector(setName:)withObject:@"smiss"];
//OC通过选择器来调用带参数的方法最多只能带两个
[xiaoming performSelector:<#(SEL)#> withObject:<#(id)#> withObject:<#(id)#>];
objc_msgSend(receiver, selector)
同时接收消息中的任意数目的参数:
objc_msgSend(receiver, selector, arg1, arg2, ...)
该消息函数做了动态绑定所需要的一切:
它首先找到选标所对应的方法实现。因为不同的类对同一方法可能会有不同的实现,所以找到的方法实现依赖于消息接收者的类型。
然后将消息接收者对象(指向消息接收者对象的指针)以及方法中指定的参数传给找到的方法实现。
最后,将方法实现的返回值作为该函数的返回值返回。
注意:编译器将自动插入调用该消息函数的代码。您无须在代码中显示调用该消息函数。
消息机制的关键在于编译器为类和对象生成的结构。每个类的结构中至少包括两个基本元素
同时接收消息中的任意数目的参数:
objc_msgSend(receiver, selector, arg1, arg2, ...)
该消息函数做了动态绑定所需要的一切:
它首先找到选标所对应的方法实现。因为不同的类对同一方法可能会有不同的实现,所以找到的方法实现依赖于消息接收者的类型。
然后将消息接收者对象(指向消息接收者对象的指针)以及方法中指定的参数传给找到的方法实现。
最后,将方法实现的返回值作为该函数的返回值返回。
注意:编译器将自动插入调用该消息函数的代码。您无须在代码中显示调用该消息函数。
消息机制的关键在于编译器为类和对象生成的结构。每个类的结构中至少包括两个基本元素
0 0
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器
- 选择器(
- $选择器
- 选择器
- 选择器
- 选择器
- maximo 字段常量值
- Scala部分应用函数
- android布局 屏幕自适应
- android 开发如何做内存优化
- 反射获取实体类里面值,按照实体类顺序输出
- 选择器
- 怎样判断 datagridview 中的checkbox列是否被选中
- AVR128驱动MPU6050
- 《那些年啊,那些事——一个程序员的奋斗史》开始预售了~~!
- 计算机视觉、机器学习相关领域论文和源代码大集合(转)
- Android开发中adb命令的常用方法
- 天易35------linux安装apache
- Hash 算法
- Ubuntu 更改文件夹权限及chmod详细用法