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