したがって、一連のメソッドを配列に格納しようとしています(それが意味をなさない場合)。Objective-Cの関数ポインタの問題
void *pointer[3];
pointer[0] = &[self rotate];
pointer[1] = &[self move];
pointer[2] = &[self attack];
//...
私がしようとしているのは、配列のオブジェクトの種類に基づいて、配列内のオブジェクトの型に基づいて、特定のメソッドが呼び出されます。そして、代わりに何か言ってif文の束有するので:
if ([[myArray objectAtIndex:0] type] == robot]) {
//Do what robots do...
}
else if (...) {
}
else {
}
そして、私はそれを作るために期待していたタイマーでこれを有するこのような何か:今
pointer[[[myArray objectAtIndex:0] type]]; //This should invoke the appropriate method stored in the pointer.
上記のコードは(と言いますコードの最初のブロック):
単精度として必要な値は、 '&'です。
説明が必要な場合は、尋ねてください。
また、私が呼び出しているすべてのメソッドがvoid型であり、パラメータを持たないことを通知するだけです。
。セレクタ[3]ではなくセレクタ[3]でなければなりませんが、ありがとう! – Dair
おっと、良いキャッチ。それは私がそれをテストせずにコピー - 過去の編集のために得るものです。一定。 – Jonah