diff --git a/Sources/SwiftyTimer.swift b/Sources/SwiftyTimer.swift index debd896..86a3f77 100644 --- a/Sources/SwiftyTimer.swift +++ b/Sources/SwiftyTimer.swift @@ -31,7 +31,7 @@ extension Timer { /// Create and schedule a timer that will call `block` once after the specified time. @discardableResult - public class func after(_ interval: TimeInterval, _ block: () -> Void) -> Timer { + public class func after(_ interval: TimeInterval, _ block: @escaping () -> Void) -> Timer { let timer = Timer.new(after: interval, block) timer.start() return timer @@ -40,7 +40,7 @@ extension Timer { /// Create and schedule a timer that will call `block` repeatedly in specified time intervals. @discardableResult - public class func every(_ interval: TimeInterval, _ block: () -> Void) -> Timer { + public class func every(_ interval: TimeInterval, _ block: @escaping () -> Void) -> Timer { let timer = Timer.new(every: interval, block) timer.start() return timer @@ -50,7 +50,7 @@ extension Timer { /// (This variant also passes the timer instance to the block) @nonobjc @discardableResult - public class func every(_ interval: TimeInterval, _ block: (Timer) -> Void) -> Timer { + public class func every(_ interval: TimeInterval, _ block: @escaping (Timer) -> Void) -> Timer { let timer = Timer.new(every: interval, block) timer.start() return timer @@ -64,7 +64,7 @@ extension Timer { /// Use `NSTimer.after` to create and schedule a timer in one step. /// - Note: The `new` class function is a workaround for a crashing bug when using convenience initializers (rdar://18720947) - public class func new(after interval: TimeInterval, _ block: () -> Void) -> Timer { + public class func new(after interval: TimeInterval, _ block: @escaping () -> Void) -> Timer { return CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + interval, 0, 0, 0) { _ in block() } @@ -76,7 +76,7 @@ extension Timer { /// Use `NSTimer.every` to create and schedule a timer in one step. /// - Note: The `new` class function is a workaround for a crashing bug when using convenience initializers (rdar://18720947) - public class func new(every interval: TimeInterval, _ block: () -> Void) -> Timer { + public class func new(every interval: TimeInterval, _ block: @escaping () -> Void) -> Timer { return CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + interval, interval, 0, 0) { _ in block() } @@ -89,7 +89,7 @@ extension Timer { /// Use `NSTimer.every` to create and schedule a timer in one step. /// - Note: The `new` class function is a workaround for a crashing bug when using convenience initializers (rdar://18720947) - @nonobjc public class func new(every interval: TimeInterval, _ block: (Timer) -> Void) -> Timer { + @nonobjc public class func new(every interval: TimeInterval, _ block: @escaping (Timer) -> Void) -> Timer { var timer: Timer! timer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + interval, interval, 0, 0) { _ in block(timer) diff --git a/SwiftyTimerTests/SwiftyTimerTests/main.swift b/SwiftyTimerTests/SwiftyTimerTests/main.swift index f808c8c..e67630f 100644 --- a/SwiftyTimerTests/SwiftyTimerTests/main.swift +++ b/SwiftyTimerTests/SwiftyTimerTests/main.swift @@ -74,7 +74,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { self.test7() } - timer.start(runLoop: .current, modes: .defaultRunLoopMode, RunLoopMode(NSEventTrackingRunLoopMode)) + timer.start(runLoop: .current, modes: .defaultRunLoopMode, .eventTrackingRunLoopMode) } func test7() {