Edited at

SwiftでStopWatchを作ってみた

More than 1 year has passed since last update.

この動画↓

SwiftでなんちゃってStopWatchを作ってみた(その1)http://www.nicovideo.jp/watch/sm24733337

SwiftでなんちゃってStopWatchを作ってみた(その2)http://www.nicovideo.jp/watch/sm24739192

を参考にStopWatchアプリを作ってみた。

挙動こんな感じ

StopWatch - Swift

https://youtu.be/5pcY_DGGPeY

動画通りに作ってもバージョンの違いで最初はエラー、ビルド通っても動かずなど色々ありましたが、試行錯誤したソースコードが後述のものです。

ちなみに、

swift 2.2

Xcode 7.3.1

で作成しました。

後から色々機能を付け足すつもりでプロジェクトをタブバーアプリケーションで作成したため、

関数呼び出し時にクラス名も記述している箇所などはバージョン云々ではなく書き方が違うと思うのですが、

細かいところがいくつか違うのでご参考までに。

import UIKit

class FirstViewController: UIViewController {

var countNum = 0
var timerRunning = false
var timer = NSTimer()

func update(){
countNum+=1
let ms = countNum % 100
let s = (countNum - ms) / 100 % 60
let m = (countNum - s - ms) / 6000 % 3600
label.text = String (format: "%02d:%02d.%02d", m,s,ms)
}

@IBOutlet weak var label: UILabel!

@IBAction func start(sender: UIButton) {
if timerRunning == false{
timer =
NSTimer.scheduledTimerWithTimeInterval(0.01,
target:self,
selector: #selector(FirstViewController.update),
userInfo: nil,
repeats: true)
timerRunning = true
}

}

@IBAction func stop(sender: UIButton) {
if timerRunning == true{
timer.invalidate()
timerRunning = false
}

}

@IBAction func reset(sender: UIButton) {
countNum = 0
label.text = "00:00.00"
}

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}