簡體   English   中英

從不兼容的類型 'void (^__strong)(int, const char *, int)' 分配給 'void (*)(int, const char *, int)'

[英]Assigning to 'void (*)(int, const char *, int)' from incompatible type 'void (^__strong)(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需要一個函數指針,但您log_cfg.cb了一個塊。 一個塊不是一個函數指針,你不能輕易地混合兩者(除了在 swift 中,它更容易)。

如果您不需要值捕獲,您可以在(全局?)函數中編寫塊代碼並輸入該函數指針。 或者檢查是否有辦法將 ObjectiveC 塊包裝到函數指針中?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM