Итак, я пытаюсь сохранить серию методов в массиве (если это имеет смысл).
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.
Прямо сейчас приведенный выше код говорит (самый первый блок кода):
L-значение требуется в качестве одинарного операнда '&'.
Если вам нужны какие-либо разъяснения, просто спросите.
Кроме того, просто чтобы вы знали, что все методы, которые я вызываю, имеют тип void и не имеют никаких параметров.