타이머 기능 추가하기

Posted on 2021-09-02 by GKSRUDTN99
Swift&Xcode Xcode DatePicker

View가 실행될 때, 타이머를 등록하여 일정 시간을 주기로 특정 함수가 실행되도록 설정해본다.

앱에 타이머 추가하기

1. 변수 및 상수 추가하기
  • ViewController의 클래스 선언부 바로 아래에 다음 소스를 작성한다.
class ViewController: UIViewController {
    let timeSelector: Selector = #selector(ViewController.updateTime)
    let interval = 1.0
    var count = 0

//    (... 생략 ...)
  • timeSelector: 타이머가 구동되면 실행할 함수를 지정합니다.
  • interval: 타이머의 간격 값이다. 1.0은 1초를 의미한다.
  • count: 타이머가 설정한 간격대로 실행되는지 확인하기 위한 변수이다.
2. 타이머 설정하기
  • viewDidLoad 함수에서 타이머를 설정한다.
  • 타이머를 설정하기 위해 scheduled Timer 함수를 사용한다.
  • 다음 소스를 viewDidLoad 함수의 마지막 위치에 추가한다.
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        Timer.scheduledTimer(timeInterval: interval, target: self, selector: timeSelector, userInfo: nil, repeats: true)
    }
  • scheduledTimer의 각 인수는 다음과 같은 의미를 갖는다.
    • timeInterval: 타이머 간격
    • target: 동작될 view
    • selector: 타이머가 구동될 때 실행할 함수
    • userInfo: 사용자 정보
    • repeats: 반복 여부
3. 타이머 동작 함수 추가하기
  • 타이머가 동작할 때 실행할 함수를 추가한다. 소스의 마지막 부분에 updateTime 함수를 추가한다.
@objc func updateTime() {
        let date = NSDate()

        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"
        lblCurrentTime.text = "현재시간: " + formatter.string(from: date as Date)
    }
  • let date = NSDate()
    • 현재 시간을 NSDate 함수를 사용하여 가져온다.