分配给'void(*)(int,const char*,int)'来自不兼容类型'void(^_



我对Objective-C不太熟悉,所以这可能是一个非常明显的错误。

Assigning to 'void (*)(int, const char *, int)' from incompatible type 'void (^__strong)(int, const char *, int)'

我在进行分配时遇到了上面的错误

log_cfg.cb = callback;

这是callback的定义

void (^callback)(int, const char*, int) = ^(int level, const char* data, int len) {
...
};

错误消息指示log_cfg.cb需要一个函数指针,但您交了一个块。块不是函数指针,你不能很容易地将两者混合在一起(除了在swift中,它更容易(。

如果您不需要值捕获,您可以在(全局?(函数中编写块代码,并提交该函数指针。或者检查是否有方法将ObjectiveC块封装到函数指针中?

相关内容

最新更新