0

我正在尝试执行一项操作,但我想决定执行哪个操作。例如我有

[bullet runAction:bullet1];

我希望能够操纵变量访问类似的东西

[bullet runAction:bullet%d, i];
4

4 回答 4

3

使用一组动作,并使用索引来访问它们

NSArray bulletActions = @[bullet1, bubble2];
[bullet runAction:bulletActions[0]];

我认为它将满足您的需求

于 2013-03-08T11:36:25.530 回答
1

你需要使用selector

 SEL selector=NSSelectorFromString([NSString stringWithFormat:@"bullet%d", i]);
[self performSelector:selector];

从此您可以调用名为 等的方法bullet1buttet2如果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";
}
于 2013-03-08T11:39:33.563 回答
1

编辑:抱歉,在查看我的答案后,我发现了一些缺陷,并将其写成更好的方法来实现这一点。

最好的结果是创建一个包含所有操作的数组。IE

NSArray actionArray = [[NSArray alloc] initWithItems:bullet1, bullet1, bullet3, nil];

然后您可以运行创建一个方法来运行该操作:

- (void)bulletAction:(int)numberToRun {

     [bullet runAction:[actionArray objectAtIndex:numberToRun]];

}

这可以通过使用代码调用:

[self bulletAction:0];

其中 0 是您要运行的任何数字。

于 2013-03-08T17:11:43.397 回答
0

你不能在问题中做你想做的事情,而是将一个子弹对象数组传递给它,并将你想要访问该数组的元素的值传递给它。

于 2013-03-08T11:36:56.097 回答