是否存在任何解決方案來使用指向自身的選擇器爲更多類創建可重用協議擴展? 例如,我正在嘗試擴展TimerHelper
,其中添加了與NSTimer
配合使用的相應功能。我發現這一點:可重複使用的Swift擴展和選擇器
https://forums.developer.apple.com/thread/26983
https://forums.developer.apple.com/message/49465#49465
但解決方案似乎有點曲折...
我試圖在代碼中,這並不當然努力使,是東西像這樣:
protocol TimerHelper {
var timer:NSTimer { get set }
}
extension TimerHelper {
func startTimer() {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: self.updateTimer(), userInfo: nil, repeats: true)
}
func updateTimer() {
print("Timer updated.")
}
}
class ViewController: UIViewController, TimerHelper {
var timer: NSTimer = NSTimer()
func start() {
startTimer()
}
}
感謝
不工作意味着什麼?有沒有特別的錯誤? – Harris
我很抱歉,錯誤是字面意思:'參數類型'自我'不符合期望的類型'Anyobject'.'但在我看來這當前的錯誤並不重要 - 有更多的情況下,我嘗試根據職位我發現或其他例子等。這個代碼只是爲了說明我的想法。無論如何感謝 –