我正在尝试执行一项操作,但我想决定执行哪个操作。例如我有
[bullet runAction:bullet1];
我希望能够操纵变量访问类似的东西
[bullet runAction:bullet%d, i];
我正在尝试执行一项操作,但我想决定执行哪个操作。例如我有
[bullet runAction:bullet1];
我希望能够操纵变量访问类似的东西
[bullet runAction:bullet%d, i];
使用一组动作,并使用索引来访问它们
NSArray bulletActions = @[bullet1, bubble2];
[bullet runAction:bulletActions[0]];
我认为它将满足您的需求
你需要使用selector
SEL selector=NSSelectorFromString([NSString stringWithFormat:@"bullet%d", i]);
[self performSelector:selector];
从此您可以调用名为 等的方法bullet1
,buttet2
如果i
提供为 1、2 等
-(void)bullet1{
NSLog@"bullet 1 called";
}
-(void)bullet2{
NSLog@"bullet 2 called";
}
-(void)bullet<your integer value>{
NSLog@"bullet <your integer value> called";
}
编辑:抱歉,在查看我的答案后,我发现了一些缺陷,并将其写成更好的方法来实现这一点。
最好的结果是创建一个包含所有操作的数组。IE
NSArray actionArray = [[NSArray alloc] initWithItems:bullet1, bullet1, bullet3, nil];
然后您可以运行创建一个方法来运行该操作:
- (void)bulletAction:(int)numberToRun {
[bullet runAction:[actionArray objectAtIndex:numberToRun]];
}
这可以通过使用代码调用:
[self bulletAction:0];
其中 0 是您要运行的任何数字。
你不能在问题中做你想做的事情,而是将一个子弹对象数组传递给它,并将你想要访问该数组的元素的值传递给它。