本文出自 “林家男孩” 博客,请务必保留此出处http://bj007.blog.51cto.com/1701577/538995 
1 Selector是Objective-C一个非常强大的特性,合理使用Selector可以大大简化实现并避免重复代码。但NSObject提供 的performSelector最多只支持两个参数,对于两个以上的参数就无能为力了。一番调查后针对NSObject增加了如下扩展,使得 performSelector可以支持传入参数数组。多个参数就不再是问题了。 2 @interface NSObject (Addition) 3  4 - (id)performSelector:(SEL)selector withObjects:(NSArray *)objects; 5  6 @end 7  8 @implementation NSObject (Addition) 9 10 - (id)performSelector:(SEL)selector withObjects:(NSArray *)objects { 11     NSMethodSignature *signature = [self methodSignatureForSelector:selector]; 12     if (signature) { 13         NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature]; 14         [invocation setTarget:self]; 15         [invocation setSelector:selector]; 16         for(int i = 0; i < [objects count]; i++){ 17             id object = [objects objectAtIndex:i]; 18             [invocation setArgument:&object atIndex: (i + 2)];        19         } 20         [invocation invoke]; 21         if (signature.methodReturnLength) { 22             id anObject; 23             [invocation getReturnValue:&anObject]; 24             return anObject; 25         } else { 26             return nil; 27         } 28     } else { 29         return nil; 30     } 31 } 32 @end
 

然后再膜拜辉哥

转载于:https://www.cnblogs.com/huangxinfj/archive/2012/04/25/2469383.html

多参selector相关推荐

  1. Kotlin极简教程:第5章 集合类

    原文链接:https://github.com/EasyKotlin 本章将介绍Kotlin标准库中的集合类,我们将了解到它是如何扩展的Java集合库,使得写代码更加简单容易.如果您熟悉Scala的集 ...

  2. jQuery初识和常用事件(一)

    文章目录 一.jQuery 二.入口函数 三.选择器 选择器小结 ★ 全部选择器参考 ☆ 四.常用的 jQuery 事件方法 事件写法 鼠标事件 元素事件 键盘事件 文档/窗口事件 全部事件方法参考 ...

  3. {{jQuery源码分析}}jQuery对象初始化的多种传参数形式

    jQuery对象初始化的传参方式包括: 1.$(DOMElement) 2.$('<h1>...</h1>'), $('#id'), $('.class') 传入字符串, 这是 ...

  4. 《Kotlin 极简教程 》第5章 集合类

    <Kotlin 极简教程 >第5章 集合类 <Kotlin极简教程>正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的 ...

  5. Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)

    app.component.html <app-in-out [in]='"传输进入"' (out)="out($event)" ></app ...

  6. Java NIO之Selector(选择器)

    **Java高级特性增强-NIO 本部分网络上有大量的资源可以参考,在这里做了部分整理并做了部分勘误,感谢前辈的付出,每节文章末尾有引用列表~ 写在所有文字的前面:作者在此特别推荐Google排名第一 ...

  7. Java NIO学习系列三:Selector

    前面的两篇文章中总结了Java NIO中的两大基础组件Buffer和Channel的相关知识点,在NIO中都是通过Channel和Buffer的协作来读写数据的,在这个基础上通过selector来协调 ...

  8. performSelector may cause a leak because its selector is unknown

    转自:http://www.jianshu.com/p/6517ab655be7 问题 我在 ARC 模式下编译出了这个 warning: "performSelector may caus ...

  9. Swift5版本以上#selector报错解决

    Swift5版本以上#selector报错解决 最近swift 版本变化较大,如果对一个按钮添加一个事件在oc想必都非常熟练,那么在 swift怎么去定义函数,以及函数传参呢 let btn = UI ...

最新文章

  1. asp mysql 连接字符串,在ASP中连接数据库(连接字符串)
  2. linux共享磁盘给指定ip,linux想挂载通过ipsan协议推送上来的磁盘,两个ip共分配了21个未分区的盘,...
  3. 网址出现error.aspx?aspxerrorpath=404.htm?aspxerrorpath=的原因及解决办法转
  4. Android application project 各个文件夹作用
  5. echarts词云图形状_词云图在自然语言中的应用,可以如此炫酷!
  6. 解决移动端报错:Unable to preventDefault inside passive event listener due to target being treated as……
  7. .netcore 和 java_Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security
  8. CSS3 transform 旋转、偏移、缩放属性,CSS3 filter 滤镜,实现图像特效
  9. 进入“后红海”时代,大数据体系到底是什么?
  10. python保存图片到本地代码_python保存网页图片到本地的方法
  11. 测试前的准备:搭建测试环境
  12. 电流检测电路-含运放电流方案
  13. WSL2配置docker和PHP
  14. mysql表文件与结构_MySQL文件结构、逻辑架构及sql执行流程分析
  15. 5.3 闪电网络的设计
  16. WPF 海康威视网络摄像头回调方式实现断连提示,降低时延
  17. JustifyTextView 解决TextView中英文混排排版问题,android文字排版不齐,
  18. NUMERIC和DECIMAL区别
  19. Java IO 序列化与反序列化
  20. 佛罗里达大学计算机科学专业排名,2019年南佛罗里达大学计算机科学专业排名情况如何?...

热门文章

  1. mysql large pages_Innodb内存管理解析
  2. [linux]远程kill进程
  3. linux下tomcat启动后出现多个java进程
  4. 阐述Spring框架中Bean的生命周期?
  5. 使用模板创建linux虚拟机网卡eth0无效解决方法
  6. css补充、JavaScript、Dom
  7. 支付宝接口调试经验总结
  8. MVC-JDBC的工作流程
  9. 和平精英体验服服务器更新维护什么意思,和平精英8月9日体验服官方申请地址 和平精英更新6项内容需要多注意!和平精英8月9日更新时间确定...
  10. Forms(The Definitive Guild to Django)