我正在使用选择器开发工具包( 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;
}
发布于 2010-02-09 11:28:16
你能存储字符串并使用NSSelectorFromString吗?
从docs
NSSelectorFromString
返回具有给定名称的选择器。
SEL NSSelectorFromString (
NSString *aSelectorName
);
发布于 2010-02-10 00:03:11
这将在选择器之外创建一个对象:
[NSValue valueWithPointer:@selector(x)]
发布于 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]];
// ....
}
https://stackoverflow.com/questions/2226520
复制相似问题