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];

これから、1、2などとして提供されている場合はbullet1buttet2などという名前のメソッドを呼び出すことができます。i

-(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

編集:申し訳ありませんが、私の答えを見た後、私はいくつかの欠陥を見て、これを達成するためのより良い方法としてこれを書きました。

このための最良の結果は、すべてのアクションを保持する配列を作成することです。すなわち

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 に答える