アクションを実行しようとしていますが、どちらを実行するかを決定したいと思います。たとえば、私は持っています
[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];
これから、1、2などとして提供されている場合はbullet1
、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";
}
編集:申し訳ありませんが、私の答えを見た後、私はいくつかの欠陥を見て、これを達成するためのより良い方法としてこれを書きました。
このための最良の結果は、すべてのアクションを保持する配列を作成することです。すなわち
NSArray actionArray = [[NSArray alloc] initWithItems:bullet1, bullet1, bullet3, nil];
次に、アクションを実行するためのメソッドの作成を実行できます。
- (void)bulletAction:(int)numberToRun {
[bullet runAction:[actionArray objectAtIndex:numberToRun]];
}
これは、次のコードを使用して呼び出すことができます。
[self bulletAction:0];
ここで、0は実行する数値です。
質問でやろうとしていることを行うことはできません。代わりに、弾丸オブジェクトの配列を渡し、その配列にアクセスする要素の値も渡します。