objective-c - 从不兼容的类型'void(^__strong)(int,const char *,int)'分配给'void(*)(int,const char *,int)'
问题描述
我对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 块包装到函数指针中?
推荐阅读
- nativescript-vue - Nativescript-vue:如何更改日期选择器颜色?
- javascript - 取消 setTimeout()
- .net - IIS:在 IIS 上更新我的 .net Web 服务后出现错误“读取服务错误”
- html - 如何根据跨度内的文本获取跨度的以下元素
- sql - SQL-SERVER 的 Identity 字段有问题
- python - 在pycharm中调试一个函数
- c++ - 在 Mac 上使用 MoltenVk/Vulkan 获取 VK_ERROR_LAYER_NOT_PRESENT
- video - 使用 ffmpeg 转换视频时浏览器挂起
- angular - 为不同的 Angular 模块分离 SCSS
- c# - 组合 2 个 dbExpressions