如何将方法参数传递给选择器

时间:2010-10-07 04:32:45

标签: objective-c cocoa-touch methods arguments selector

如果我有这样的方法:

- (void) foo
{
}

然后我可以通过这样的选择器访问它:

@selector(foo)

但如果我有这样的方法怎么办:

- (void) bar:(NSString *)str arg2:(NSString *)str2
{

}

然后我如何通过选择器访问它?

2 个答案:

答案 0 :(得分:5)

要处理任意数量的选择器,你应该使用NSInvocation,但是你可以使用标准的performWithSelector东西处理最多两个对象

[foo performSelector:@selector(bar:arg2:) withObject:obj1 withObject:obj2]

答案 1 :(得分:2)

删除空格,参数类型和参数名称。在您的示例中,这将变为:

@selector(bar:arg2:)