【问题标题】:How to perform selectors with an argument?如何使用参数执行选择器?
【发布时间】:2012-07-15 03:42:33
【问题描述】:
如何使用参数执行选择器?这是我的代码:
SEL methods=NSSelectorFromString([arrayWithMethods objectAtIndex:i]);
[self performSelector:methods withObject:self afterDelay:MAN_SPEED*i];
如果我的选择器方法有参数,我该如何指定?
【问题讨论】:
标签:
ios
objective-c
xcode
selector
【解决方案1】:
零参数选择器的字符串如下所示:
arrayWithMethods = [NSArray arrayWithObjects:@"myMethod", ... nil]
如果它有一个参数,则在方法名称后添加一个冒号来指定:
arrayWithMethods = [NSArray arrayWithObjects:@"myMethod:", ... nil]
现在您的 myMethod 将通过“self”(因为这就是您作为“with object”传递的内容。
【解决方案2】:
如果它只有一个参数,您可以使用参数withObject: 传递它
如果它有超过 1 个参数,您将需要一个包装器对象来使用相同的参数传递它。