【第22期】观点:IT 行业加班,到底有没有价值?

iOS 【如何在perfromSelector后面拼接更多参数】

原创 2016年05月31日 21:25:58

[delegate imageDownloader:self didFinishWithImage:image];

[delegate performSelector:@selector(imageDownloader:didFinishWithImage:)withObject:self withObject:image];


1、performSelector是运行时系统负责去找方法的,在编译时候不做任何校验;如果直接调用编译是会自动校验。如果imageDownloader:didFinishWithImage:image:不存在,那么直接调用在编译时候就能够发现错误等(借助Xcode可以写完就发现),但是使用performSelector的话一定是在运行时候才能发现(此时程序崩溃)Cocoa支持在运行时向某个类添加方法,即方法编译时不存在,但是运行时候存在,这时候必然需要使用performSelector去调用。所以有时候如果使用了performSelector,为了程序的健壮性,会使用检查方法

- (BOOL)respondsToSelector:(SEL)aSelector;

2、直接调用方法时候,一定要在头文件中声明该方法的使用,也要将头文件import进来。而使用performSelector时候, 可以不用import头文件包含方法的对象,直接performSelector调用即可。

(以上对于performSelector方法的调用机制分析转载自网络


我们了解,对于performSelector开头的方法一共最多可以拼接2个参数。那么,今天我们需要讨论的是如何在该类方法的后面拼接多个参数。


// 首先在调用perfromSelector的时候我们传入的是一个新的方法名,而这个方法是只需要传入一个数组参数的,这个数组也就存储了我们需要的复杂参数
NSArray *arr1 = @[@"stand", @"10"];  
[self performSelector:@selector(btnClick1:) withObject:arr1 afterDelay:self.QHImageView.animationDuration];

- (void)btnClick1:(NSArray *)arr
{
    [self btnClickWithName:arr[0] imageCount:[arr[1] intValue]]; // 在该新方法内部将数组元素取出,调用原本我们要调用的多参数的方法
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

iOS开发之宏定义实现变量名拼接

iOS开发之宏定义实现变量名拼接
  • l2i2j2
  • l2i2j2
  • 2016-04-20 23:30
  • 1116

iOS连接外设的几种方式

一般iOS开发者做APP开发大部分时候都是通过Http(s)请求跟后台服务器打交道,做一些信息展示和用户交互。很少涉及到去跟外部硬件设备连接的开发。随着近年来车联网和物联网的兴起,智能家居和智能硬件的...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

iOS 音频拼接

工作中或许会遇到这样的需求,将两段不同的音频合成一个音频(暂且称之为音频拼接),实现起来相对来说不是很难,再介绍如何拼接之前,先了解下AVFoundation下的几个基本知识点。 基本知识 ...

iOS 利用openCV拼接照片实现拍摄全景照片

现在全景越来越火,既有的设备如日本的理光相机就可以做到拍摄360°全景照片的功能,但是售价也是相当的感人.其实在iPhone手机上我们也可以借助现有的开源库实现这个功能,比如:openCV.openC...

NSString拼接字符串

NSString* string; // 结果字符串 02 NSString* string1, string2; //已存在的字符串,需要将s...

ios连接外设的代码实现流程

ios连接外设的代码实现流程 1. 建立中心角色 2. 扫描外设(discover) 3. 连接外设(connect) 4. 扫描外设中的服务和特征(discover) - 4.1 获取...

Objective-c在宏里拼接字符串

//正式服务器 #define API_DOMAIN @"www.online.com" //测试服务器 //#define DOMAINXX @"192.168.0.10" #define AP...
  • gaoyp
  • gaoyp
  • 2014-02-27 14:58
  • 3072

NSString拼接字符串和NSPredicate详解

NSString* string; // 结果字符串 02 NSString* string1, string2; //已存在的字符串,需要将string1和string2连...

IPhone NSString,NSArray字符串分割和拼接方法

拼接: 例,以下代码将在控制台输出字符串”here be dragons”: NSArray *pathArray = [NSArray arrayWithObjects:@"he...

IOS开发】@selector 调用方法,传递多参数。

IOS开发】@selector 调用方法,传递多参数。。  (2014-04-02 12:02:47) 转载▼ 标签:  it 分类: IOS开发 ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)