swift tips

需要注意的是,selector 其实是 Objective-C runtime 的概念,如果你的 selector 对应 的方法只在 Swift 中可见的话 (也就是说它是一个 Swift 中的 private 方法),在调用这个 selector 时你会遇到一个 unrecognized selector 错误:

这是错误代码

private func callMe() { //…

}
NSTimer.scheduledTimerWithTimeInterval(1, target: self,

selector:”callMe”, userInfo: nil, repeats: true)

正确的做法是在 private 前面加上 @objc 关键字,这样运行时就能找到对应的方法了。

@objc private func callMe() { //…

}
NSTimer.scheduledTimerWithTimeInterval(1, target: self,

selector:”callMe”, userInfo: nil, repeats: true)