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

Objective c 如何将方法参数传递给选择器,objective-c,cocoa-touch,methods,arguments,selector,Objective C,Cocoa Touch,Methods,Arguments,Selector,如果我有这样的方法: - (void) foo { } @selector(foo) - (void) bar:(NSString *)str arg2:(NSString *)str2 { } 然后我可以通过如下选择器访问它: - (void) foo { } @selector(foo) - (void) bar:(NSString *)str arg2:(NSString *)str2 { } 但是如果我有这样一种方法呢: - (void) foo { } @select

如果我有这样的方法:

- (void) foo
{
}
@selector(foo)
- (void) bar:(NSString *)str arg2:(NSString *)str2
{

}
然后我可以通过如下选择器访问它:

- (void) foo
{
}
@selector(foo)
- (void) bar:(NSString *)str arg2:(NSString *)str2
{

}
但是如果我有这样一种方法呢:

- (void) foo
{
}
@selector(foo)
- (void) bar:(NSString *)str arg2:(NSString *)str2
{

}

那么如何通过选择器访问它?

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

@selector(bar:arg2:)

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


[foo performSelector:@selectorbar:arg2:withObject:obj1 withObject:obj2]

那么如何传递参数?有关如何调用选择器,请参阅Joshua的答案。