Skip to content

Instantly share code, notes, and snippets.

@AnselmeKotchap
Last active July 23, 2016 07:17
Show Gist options
  • Select an option

  • Save AnselmeKotchap/8af2f3cbb7cb9da59f73971efa2e45ec to your computer and use it in GitHub Desktop.

Select an option

Save AnselmeKotchap/8af2f3cbb7cb9da59f73971efa2e45ec to your computer and use it in GitHub Desktop.

Revisions

  1. AnselmeKotchap revised this gist Jul 23, 2016. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion Timer.swift
    Original file line number Diff line number Diff line change
    @@ -37,4 +37,6 @@ class Timer {
    deinit {
    self.timer.invalidate()
    }
    }
    }

    //source: http://samuelmullen.com/2014/07/using-swifts-closures-with-nstimer/
  2. AnselmeKotchap created this gist Jul 23, 2016.
    40 changes: 40 additions & 0 deletions Timer.swift
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,40 @@
    import Foundation

    class Timer {
    var timer = NSTimer()
    var handler: (Int) -> ()

    let duration: Int
    var elapsedTime: Int = 0

    init(duration: Int, handler: (Int) -> ()) {
    self.duration = duration
    self.handler = handler
    }

    func start() {
    self.timer = NSTimer.scheduledTimerWithTimeInterval(1.0,
    target: self,
    selector: Selector("tick"),
    userInfo: nil,
    repeats: true)
    }

    func stop() {
    timer.invalidate()
    }

    @objc func tick() {
    self.elapsedTime++

    self.handler(elapsedTime)

    if self.elapsedTime == self.duration {
    self.stop()
    }
    }

    deinit {
    self.timer.invalidate()
    }
    }