[iOS] Timer

Eugenie·2022년 6월 17일
0

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 앱 프로그래밍

profile
🌱 iOS developer

0개의 댓글