TIL65 ✨

YaR Lab·2023년 7월 21일
0

TIL✨

목록 보기
53/135
post-thumbnail

🗓️23.07.21

타이머

타이머 메서드 시그니처

class func scheduledTimer(
    withTimeInterval interval: TimeInterval,
    target: Any,
    selector: Selector,
    userInfo: Any?,
    repeats: Bool
) -> Timer

Timer.scheduledTimer(timeInterval:target:selector:userInfo:repeats:)은 Swift의 Timer 클래스의 클래스 메서드로, 지정된 간격에 따라 반복적으로 작업을 실행하기 위해 타이머를 생성하는데 사용됩니다.

  • interval: 타이머의 간격을 지정합니다. TimeIntervalDouble 타입의 초 단위 값으로, 타이머가 작동하는 주기를 의미합니다.
  • target: 타이머가 작동할 때, 해당 메서드가 포함된 객체를 가리키는 타겟을 지정합니다. 일반적으로 self 키워드를 사용하여 현재 객체를 지정합니다.
  • selector: 타이머가 동작할 때 호출되는 메서드를 지정하는 셀렉터(Selector)입니다. 이 셀렉터는 target 객체에 정의되어 있어야 합니다.
  • userInfo: 타이머에 대한 추가 정보를 전달할 수 있는 사용자 정의 데이터입니다. 필요 없다면 nil을 지정합니다.
  • repeats: 타이머가 반복 작동할지 여부를 지정합니다. true로 설정하면 반복적으로 작동하며, false로 설정하면 한 번만 작동한 후에 종료됩니다.

예시:

class MyViewController: UIViewController {
    var timer: Timer?

    override func viewDidLoad() {
        super.viewDidLoad()

        // 타이머 설정
        timer = Timer.scheduledTimer(timeInterval: 1.0, // 1초마다 실행
                                     target: self,
                                     selector: #selector(updateTimerLabel),
                                     userInfo: nil,
                                     repeats: true)
    }

    @objc func updateTimerLabel() {
        // 이 메서드가 1초마다 호출될 것입니다.
        // 타이머에 의해 반복적으로 호출되는 작업을 수행할 수 있습니다.
    }

    // 생략: 다른 코드들
}

위 예시에서 viewDidLoad() 메서드에서 타이머를 설정하고, 1초 간격으로 updateTimerLabel() 메서드를 호출하는 타이머가 생성됩니다. updateTimerLabel() 메서드에서는 1초마다 원하는 작업을 수행할 수 있습니다. 만약 뷰 컨트롤러가 메모리에서 해제되기 전에 타이머를 멈추려면, timer를 옵셔널로 선언하여 타이머를 제어할 수 있습니다.

Timer 클래스를 사용하여 주기적으로 작업을 실행할 때, 메모리 누수를 방지하기 위해 적절한 시기에 타이머를 멈추거나 해제해야 합니다. 예를 들어, 뷰 컨트롤러가 메모리에서 해제되기 전에 타이머를 멈추려면 deinit 메서드에서 invalidate() 메서드를 호출하여 타이머를 해제해야 합니다.

https://zzoo789.tistory.com/entry/iOS-Scene-Window-View에-대한-아주-기초적인-정리

translatesAutoresizingMaskIntoConstraints

behavior

네이밍

UI, API 축약어를 사용할때도 있음

맨 앞에있을때는 소문자 ui

extension private

private extension BankViewController

코드베이스

configureView
configureUI
setUpAutoLayout

로웬꺼 보기

0개의 댓글