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

发布于 2024-09-26 10:21:24 字数 256 浏览 4 评论 0原文

如果我有这样的方法:

- (void) foo
{
}

那么我可以通过这样的选择器访问它:

@selector(foo)

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

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

}

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

If I have a method like this:

- (void) foo
{
}

Then I can access it through a selector like this:

@selector(foo)

But what if I have a method like this:

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

}

Then how do I access it through a selector?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忘东忘西忘不掉你 2024-10-03 10:21:24

要处理任意数量的选择器,您应该使用 NSInitation,但您可以使用标准的 PerformWithSelector 内容处理最多两个对象

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

To handle an arbitrary number of selectors you should use NSInvocation, but you can handle up to two objects using the standard performWithSelector stuff

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

烟若柳尘 2024-10-03 10:21:24

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

@selector(bar:arg2:)

Remove the spaces, parameter types, and parameter names. In your example, this would become:

@selector(bar:arg2:)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文