Timer
일정한 시간 간격이 지나면 지정된 메세지를 특정 객체로 전달하는 기능 제공
▶ 타이머는 런 루프(run loops) 에서 작동한다.
▶ 타이머를 생성할 때 반복 여부를 지정한다.
비 반복 타이머 : 한 번 실행된 다음 자동으로 무효화 된다.
반복 타이머 : 동일한 루프에서 특정 TimeInterval 간격으로 실행된다.
반복되는 타이머 기능을 정지하려면 invalidate()
메서드를 호출해 무효화 한다.
Timer 주요 프로퍼티
▶ var isValid: Bool
- 타이머가 현재 유효한지 아닌지 여부
▶ var fireDate: Date
- 다음에 타이머가 실행될 시각
▶ var timeInterval: TimeInterval
: 타이머의 실행 시간 간격 ( 초 단위 )
TimeInterval
날짜 및 시간 관련한 표현에 사용하는 타입으로 초(second)를 나타낸다.
즉, 값이 1이면 1초를 나타낸다.
❗️ TimeInterval은 이름만 다른 Double 타입이다.
타입 별칭(Type alias)이라는 기능을 활용하여 이름만 달라진 것이다.
이미 존재하는 타입의 기능을 똑같이 구현할 필요는 없으나
Double이라는 이름보다는 TimeInterval이라는 이름으로 표현하는 것이
더 직관적이므로 타입 별칭을 사용해준 것이다.
Timer 생성 메서드
Timer 생성과 동시에 런 루프에 default mode
로 등록하는 클래스 메서드
class func scheduledTimer(withTimeInterval: TimeInterval,
repeats: Bool,
block:(Timer) -> Void)
class func scheduledTimer(timeInterval: TimeInterval,
target: Any,
selector Selector,
userInfo: Any?,
repeats: Bool)
class func scheduledTimer(timeInterval: TimeInterval,
invocation: NSInvocation,
repeats: Bool)
Timer 생성 후 수동으로 add(_: forMode: )
메서드를 이용해 런 루프에 추가해줘야 하는 메서드
func init(timeInterval: TimeInterval,
invocation: NSInvocation,
repeats: Bool)
func init(timeInterval: TimeInterval,
target: Any,
selctor: Selctor,
userInfo: Any?,
repeats: Bool)
func init(fireAt: Date,
interval: TimeInterval,
target: Any,
selector: Selctor,
userInfo: Any?,
repeats: Bool)
📚 Reference
Timer
TimeInterval
[Swift] 시간과 날짜를 다루는 타입에 대해서 알아보자.
boostcourse - iOS 앱 프로그래밍