executeSelector на метод класса C ++? - PullRequest
0 голосов
/ 21 октября 2011

Можно ли как-нибудь вызвать executeSelector для функции-члена класса c ++?

Я подумываю о создании фиктивного класса objc, который будет получать вызов executeSelector, и этот фиктивный класс, вызывающий требуемую функцию-член c ++.

Но есть ли лучший способ?

(Причина, по которой я не хочу просто вызывать метод из-за многопоточности)

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Вы не можете вызвать объективное сообщение c в экземпляре класса c ++ из-за фундаментальных различий во внутренних элементах (посмотрите на objc_msgSend (), который требует времени выполнения target c). Вы можете посмотреть на указатели функций или библиотеки boost C ++, такие как bind или function . В качестве альтернативы, вы можете, как вы говорите, создать оболочку, которая пересылает сообщения obj c как вызовы метода c ++.

0 голосов
/ 21 октября 2011

Нет хорошего способа сделать это.Я бы создал ваш фиктивный приемник Objective-C и вызвал бы ваш класс C ++ оттуда.Я сделал то же самое, чтобы получать события пользовательского интерфейса в классах C ++.

...