Как получить NSNotification от Objective-C в классах C ++? - PullRequest
4 голосов
/ 14 мая 2011

У меня есть класс Objective-C ++, который добавляет себя в качестве наблюдателя для события в Cocoa NSView. Я хотел бы иметь возможность отправлять NSNotifications в метод класса C ++ вместо метода или блока Objective-C. Как я могу это сделать?

Моя ситуация такова:

  • A - Objective-C ++ класс
  • B - NSView

B инкапсулирован A. Я хочу получить уведомление об одном из событий B. Однако метод, обрабатывающий это событие, ДОЛЖЕН иметь ссылку на экземпляр A, который содержит B.

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Создайте мертвый простой класс-оболочку в Objective-C, который указывает на ваш экземпляр C ++ и обрабатывает уведомление, вызывая метод C ++.

2 голосов
/ 14 мая 2011

Вы не можете напрямую использовать уведомление методом C ++ или простой функцией C в этом отношении.

Вы должны обернуть вызов метода C ++ как фактического метода Objective C или блока, а затем делегировать пересылку уведомления методу C ++.

...