无法执行带有param功能的选择器

时间:2017-03-06 23:17:52

标签: swift runtime selector iad

我对你们有一个小小的追求。 我想执行包含函数作为参数的选择器。但总是会出现运行时错误。

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

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

其中funcAsVar是一个函数作为变量。 帮助,伙计们

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

1 个答案:

答案 0 :(得分:1)

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

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