Попытка интегрировать простой код C / C ++ в проект iPhone как внешнюю статическую библиотеку. Пока все хорошо, но теперь я застрял в точке, где мне нужно зарегистрировать обратные вызовы библиотеки . Библиотека должна уведомлять мое приложение iPhone, когда что-то происходит. Похоже, хорошее место для определения делегата .
... но библиотека ожидает указатели на C-функции для обратных вызовов. Как определить их в Objective-C , как использовать их как часть шаблона делегата?
Извините, действительно не могу дать пример кода. Вот что-то похожее: сначала интерфейс, который я должен использовать для регистрации, затем определения обратных вызовов.
registerCallBack(&aCBack, &bCBack, &cCBack, &dCBack, &eCBack);
typedef void (aCBack)(uint32_t magic);
typedef void (bCBack)(const NewData* newData);
typedef void (cCBack)(uint32_t value, const std::vector<DataStuff*>* stuff);
typedef void (dCBack)(uint32_t value, const SomeData* data, const std::string text, uint32_t type);
typedef void (eCBack)(uint32_t value, const MoreData* more);
... о, кстати, одна из проблем заключается в том, что у каждого метода класса Objective-C есть два скрытых аргумента. Не уверен, как с этим справиться. Помимо изменения интерфейса этой внешней библиотеки.