2017-03-06 62 views
0

我對你們有一個小小的追求。 我想執行包含函數作爲參數的選擇器。但總是得到運行時錯誤。無法使用功能作爲參數執行選擇器

此方法來自iAd框架。這就是我想要做的:

​​

其中funcAsVar是一個函數作爲變量。 幫助請傢伙

運行時錯誤是:libswiftCore.dylib-[_SwiftValue dealloc]:

+0

什麼是運行時錯誤? – NobodyNada

+0

我不認爲Swift函數會自動橋接到Objective C塊。你有沒有試過一個調用函數的Swift塊? –

+1

實際上,您可能可以在傳遞給'perform'方法的參數上使用'@convention(block)'。 –

回答

1

你可以在你傳遞給perform方法參數添加@convention(block)。像這樣:

let sel = Selector("requestAttributionDetailsWithBlock:") 
if obj.responds(to: sel) { 
    obj.perform(sel, with: @convention(block) funcAsVar) 
} 
相關問題