Gibt es eine Lösung, um wiederverwendbare Protokollerweiterung für mehr Klassen mit Selektoren zu machen, die auf sich selbst zeigen würden? Zum Beispiel versuche ich die Erweiterung TimerHelper
zu machen, die entsprechende Funktionen hinzufügt, um mit NSTimer
zu arbeiten. Ich fand dies:Wiederverwendbare Swift-Erweiterung und Selektoren
https://forums.developer.apple.com/thread/26983
https://forums.developer.apple.com/message/49465#49465
Aber Lösung scheint ein wenig verwinkelt ...
Was ich versuche, in Code zu machen, was natürlich nicht funktioniert, ist etwas, wie folgt aus:
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()
}
}
Dank
nicht arbeiten können, bedeutet? Gibt es speziell einen Fehler? – Harris
Es tut mir leid, der Fehler ist wörtlich: 'Argumenttyp 'Self' entspricht nicht dem erwarteten Typ 'AnyObject'. Aber meiner Meinung nach ist dieser aktuelle Fehler nicht wichtig - es gab eine Menge Fehler für mehr Situationen, die ich nach Posts versuchte Ich fand oder andere Beispiele usw. Dieser Code sollte nur meine Idee veranschaulichen. Danke trotzdem –