首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何创建“选择器数组”

如何创建“选择器数组”
EN

Stack Overflow用户
提问于 2010-02-09 11:15:35
回答 6查看 19.6K关注 0票数 83

我正在使用选择器开发工具包( iPhone SDK ) (3.0),并尝试创建一个选择器的数组,以便在一个类中调用各种方法。

显然,我做错了什么(我认为@selector不被认为是一个类,所以把它们塞进NSArray是行不通的)。

我试过了,但显然是错的。

有没有一种简单的方法来获得像这样的选择器数组?或者,有没有更好的方法来遍历一组方法?

selectors = [NSArray arrayWithObjects:
                          @selector(method1),
                          @selector(method2),
                          @selector(method3),
                          @selector(method4),
                          @selector(method5),
                          @selector(method6),
                          @selector(method7), nil];

for (int i = 0; i < [selectors count]; i++) {
    if ([self performSelector:[selectors objectAtIndex:i]]) // do stuff;
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-09 11:28:16

你能存储字符串并使用NSSelectorFromString吗?

docs

NSSelectorFromString

返回具有给定名称的选择器。

SEL NSSelectorFromString (
   NSString *aSelectorName
);
票数 79
EN

Stack Overflow用户

发布于 2010-02-10 00:03:11

这将在选择器之外创建一个对象:

[NSValue valueWithPointer:@selector(x)]
票数 44
EN

Stack Overflow用户

发布于 2010-02-10 00:12:13

为什么不使用一个简单的C数组呢?

static const SEL selectors[] = {@selector(method1),
                                ....
                                @selector(method7)};

...

for (int i = 0; i < sizeof(selectors)/sizeof(selectors[0]); i++) {
  [self performSelector:selectors[i]];
  // ....
}
票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2226520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档