【发布时间】:2014-03-04 04:02:41
【问题描述】:
有没有这样的方法:
- (id)performSelector:(SEL)selector withParameters:(NSArray *)parameters;
我可以像这样调用 obj-c 消息:
// invoke a message with 3 parameters
[obj performSelector:@selector(evaluate:name:animate:) withParameters:@[@1, @"test", @YES]];
// invoke a message with 1 parameter which is an array containing 3 components.
[NSArray performSelector:@selector(arrayWithArray:) withParameters:@[@[@1, @"test", @YES]]];
如果没有这样的方法。如何使用 Obj-C 运行时实现这一点?不可能吗?
【问题讨论】:
-
@MichaelDautermann no answer in that question提供了一种将数组作为参数的方法。
-
嗯,@BryanChen;我在重复问题中的回答具体展示了如何在参数中使用数组。
-
@MichaelDautermann 好吧,你或我都误解了这个问题。我认为 OP 正在寻求一种方法来调用
someMethod:withArg:andArg:andArg:,并将参数打包在一个数组中。不将数组传递给someMethodTakesArray: -
我同意 Bryan 的观点;迈克尔的回答并没有完全符合要求,but valvoline's does。
标签: objective-c