performSelector与中括号调用的区别
来源:互联网 发布:文斯莫克家族知乎 编辑:程序博客网 时间:2024/05/21 22:42
先简要分别叙述下方法的直接调用和通过performSelector:@selector()调用的区别
-------以oc作为例子,我们平常通常通过中括号调用方法对某目标发送消息,例如[myArray count],如此调用方法的前提是接收信息方已经有相应的方法声明,并且使用处有#import相关的头文件,需要通过编译
-------而对已performSelector而言,相对的来说不需要经过编译检测,而是在运行时系统再为编码者完成发送消息的请求(调用请求),例如[myArray performSelector@selector(count)],严格来说如果编译器没有找到接收者count的声明,会报出警告提醒,当然我们再根据业务需求选择是否忽略警告。当然,如果在运行时调用不成功,程序会crash,因此通常没有特殊排斥时我们需结合- (BOOL)respondsToSelector:(SEL)selector;来检测方法的存在与否。
通常performSelector:会结合objcRuntime运行时为类型添加方法使用,直接人为考虑运行时创造方法和使用方法的逻辑,起到意想不到的效果
1 0
- performSelector与中括号调用的区别
- performSelector与直接调用的区别
- performSelector调用和直接调用的区别
- 函数调用加括号与不加括号的区别
- shell中单中括号与双中括号的区别
- performSelector调用方法和直接self 调用方法的区别
- respondsToSelector:与performSelector:区别
- js调用函数时加括号与不加括号的区别
- js调用函数时加括号与不加括号的区别
- js调用函数时加括号与不加括号的区别
- js函数调用时,加括号与不加括号的区别
- JS调用函数时,加括号与不加括号的区别
- javascript中函数调用带括号和不带括号的区别
- js中方法调用加括号和不加括号的区别
- python中,花括号,中括号,小括号的区别
- 关于performSelector调用和直接调用区别
- 关于performSelector调用和直接调用区别
- 关于performSelector调用和直接调用区别
- easyui tree节点取消选择方法
- C++不同继承方式的基类和派生类特性
- unicode和UTF-8的关系
- iOS 8 AutoLayout与Size Class
- 应用Redis时
- performSelector与中括号调用的区别
- 1032. 挖掘机技术哪家强(20)
- Android SurfaceTexture
- 待研究问题清单
- 关于微信支付
- Windows下Python环境搭建(包括Win7 64位下安装setuptools)
- php 框架 yii control 中使用布局
- 回忆,内心期望与建立秩序 - 2015/10/29
- 雷鸟Thunderbird邮件客户端的几个实用配置技巧