我对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块封装到函数指针中?