无法以函数作为参数执行选择器

Cannot perform selector with function as param

我有一个小任务要交给你们。 我想要执行包含函数作为参数的选择器。但总是出现运行时错误。

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

 let sel = Selector("requestAttributionDetailsWithBlock:")
 if obj.responds(to: sel) { 
    obj.perform(sel, with: funcAsVar)
 }

其中 funcAsVar 是作为变量的函数。 伙计们,请帮忙

运行时错误是:libswiftCore.dylib-[_SwiftValue dealloc]:

您可以在传递给 perform 方法的参数上添加 @convention(block)。像这样:

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