Selector Perform 扩展 多参
来源:互联网 发布:麦克风调音软件 编辑:程序博客网 时间:2024/06/03 23:09
http://hi.baidu.com/ncudlz/item/f074c04b353d4fd0c1a592eb
Selector是Objective-C一个非常强大的特性,合理使用Selector可以大大简化实现并避免重复代码。但NSObject提供 的performSelector最多只支持两个参数,
对于两个以上的参数就没有能力为力了。一番调查后针对NSObject增加了如下扩展,使得 performSelector可以支持传入参数数组。多个参数就不再是问题了。@interface NSObject (Addition)
- (id)performSelector:(SEL)selector withObjects:(NSArray *)objects;
@end
@implementation NSObject (Addition)
- (id)performSelector:(SEL)selector withObjects:(NSArray *)objects {
NSMethodSignature *signature = [self methodSignatureForSelector:selector];
if (signature) {
NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:self];
[invocation setSelector:selector];
for(int i = 0; i < [objects count]; i++){
id object = [objects objectAtIndex:i];
[invocation setArgument:&object atIndex: (i + 2)];
}
[invocation invoke];
if (signature.methodReturnLength) {
id anObject;
[invocation getReturnValue:&anObject];
return anObject;
} else {
return nil;
}
} else {
return nil;
}
}
- Selector Perform 扩展 多参
- IOS 取消延迟执行函数 (perform selector)
- perform selector may cause a leak in ARC
- Swift-Selector方法的扩展
- iOS 使用block时工程的警告perform selector may cause a leak because its selector is unknown
- 如何用perform selector调用超过两个以上参数的方法
- ios如何用perform selector调用超过两个以上参数的方法
- 如何用perform selector调用超过两个以上参数的方法
- iOS调用perform selector超过2个参数以上的方法
- selector
- selector
- @selector
- selector
- @selector
- Selector
- @selector
- @selector
- Selector
- oracle 中通过使用客户端导致查询出来的中文数据为乱码的解决方式
- sql 关于时间日期的
- ANROID JNI中一些C++文件,冒号和双冒号作用
- Windows Server 2008的FTP站点用户设置
- flash平台下编译成SWC的3种方法(转)查看swc源码
- Selector Perform 扩展 多参
- 谈谈iOS下图像颜色检测、颜色匹配的解决方法
- .不是内部或外部命令
- JSON教程
- Java Properties类 按输入顺序输出,每条添加注释
- 使用memcached进行内存缓存
- sizeof
- android创建SpannableString超链接
- poj 1067 和 poj 2234 取石子游戏