Как получить NSNotifications от Objective-C в классах С++?

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

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

  • A — класс Objective-C++
  • B - НСВью

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


person Jake Petroules    schedule 13.05.2011    source источник


Ответы (2)


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

person bbum    schedule 13.05.2011
comment
Д'о. Я на самом деле только что понял, что могу сделать это около 10 минут назад. Спасибо за ваш ответ. Просто, точно и по делу. :) - person Jake Petroules; 14.05.2011

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

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

person PeyloW    schedule 13.05.2011