我对你们有一个小小的追求。 我想执行包含函数作为参数的选择器。但总是会出现运行时错误。
此方法来自iAd框架。这就是我想要做的事情:
let sel = Selector("requestAttributionDetailsWithBlock:")
if obj.responds(to: sel) {
obj.perform(sel, with: funcAsVar)
}
其中funcAsVar
是一个函数作为变量。
帮助,伙计们
运行时错误是:libswiftCore.dylib-[_SwiftValue dealloc]:
答案 0 :(得分:1)
您可以在传递给@convention(block)
方法的参数上添加perform
。像这样:
let sel = Selector("requestAttributionDetailsWithBlock:")
if obj.responds(to: sel) {
obj.perform(sel, with: @convention(block) funcAsVar)
}