Swift中的内联选择器是否有本地语言功能?如果没有,这是否有一个优雅的模式?
例如,使用Selector的NSTimer。这是一种没有内联函数或块的方法:
var timer = NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "update", userInfo: nil, repeats: false)
@objc func update() {
print("timer up")
}
我宁愿有类似的东西。 这是一个概念,不会编译。
var timer = NSTimer.scheduledTimerWithTimeInterval(2,
target: self,
selector: { println("timer up") }, // What can I do here?
userInfo: nil,
repeats: false)
这与目标C中有关内联选择器的question类似。
答案 0 :(得分:2)
此代码与Objective-C桥接,并且没有办法在那里进行。您传递的字符串最终会转换为选择器(SEL
)并传递给objc_msgSend
。所以,没有。
您可以查看BlocksKit adds these NSTimer
methods,它将转换为Swift中的闭包。