performSelector包含一些参数

时间:2012-02-02 14:26:48

标签: objective-c ios5 selector

我想执行具有一些参数的方法。是否有任何简单的方法可以立即传递其中一些?像

这样的东西
[self performSelector:@selector(methodName) withObject:firstParameter withObject:secondParameter afterDelay:0.1];

我在这里找到了一种方法SEL performSelector and arguments,但它似乎有点复杂,我想应该有一些更简单的方法来完成它。但可能它只是因为在Objective C中成为新手而对我来说:)

我会非常感谢你的帮助!

2 个答案:

答案 0 :(得分:3)

  1. 将您的参数包装到NSDictionary中并将此字典发送为 参数。
  2. 制作自定义类,并在此类中包含所有参数 属性。将此新创建的对象作为参数发送。

答案 1 :(得分:2)

或另一种解决方案:

#import <objc/runtime.h>
...
objc_msgSend(self, sel_getUid("methodwithFirstParam:secondParam:thirdParam:"), @"foo", "bar", 42 );

performSelector:不同,方法objc_msgSend可以使用不同类型的大量参数,例如NSObject(和子类)或BOOLintchar*等。