0

我对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) {

    ...

};
    
4

1 回答 1

1

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

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

于 2020-09-18T21:06:04.790 回答