我的背景经验是 C/C++/C#。
我在 xcode 项目中使用 C++ 库(具体来说,该库是 PJSIP)。要使用该库,我必须将几个回调连接到我的代码,如下所示:
SIPTest.m
#include < pjsua-lib/pjsua.h >
static void on_reg_state(pjsua_acc_id acc_id)
{
// Do work
}
static void Init()
{
// pjsua_config and psjua_config_default are defined in the header file from pjsip
pjsua_config cfg;
psjua_config_default(&cfg);
cfg.cb.on_regstate = &on_reg_state;
}
我想将此 C++ sytnax 切换到 Objective C
所以我做了:
+(void) on_reg_state:(pjsua_acc_id) acc_id
{
// Do work
}
+(void) Init
{
pjsua_config cfg;
psjua_config_default(&cfg);
cfg.cb.on_regstate = &on_reg_state; // ***** this is causing compile error
// I tried [CLASS NAME on_reg_state] and i get runtime error
}
我试图在 Objective C 中搜索委托,但我找不到类似的情况,其中回调已经在 C++ 中实现,并且您想将它与 Objective-C 语法一起使用。
谢谢