Зачем использовать указатели на функции в структуре в Objective-C? - PullRequest
3 голосов
/ 01 февраля 2010

Я только что прочитал этот вопрос об использовании C Struct в Objective C , и мне было интересно, почему кто-то захочет использовать указатели на функции в структурах. Разве обертывание функций в классе не эквивалентно?

Ответы [ 2 ]

3 голосов
/ 01 февраля 2010

Не думаю, что вам понадобится что-то подобное в объективе-c.

Вот как бы вы реализовали полиморфизм в C. Это похоже на определение интерфейса. Некоторые фреймворки (включая ядро ​​«файловая система») ожидают, что вы передадите структуру со своими функциями, которую фреймворк вызовет, когда произойдет какое-то событие.

Если вам действительно это нужно, я думаю, вы могли бы использовать c ++ и struct / классы из target-c вместо использования простых структур C с указателями на функции, но вы должны быть в порядке с использованием target-c.

2 голосов
/ 01 февраля 2010

Функциональные указатели используются так же, как в C, для создания полиморфного поведения, своего рода объекта бедняка. Единственные причины, по которым я могу думать о том, чтобы сделать это иначе, чем согласие с существующей библиотекой C, - это получить преимущество в производительности по сравнению с диспетчеризацией метода target-c.

...