Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

Swift(iOS)에서 지연 후 메소드를 호출하는 방법은 무엇입니까?

<시간/>

이 포스트에서 우리는 Swift를 사용하여 메소드 호출을 지연시키는 방법을 볼 것입니다. 여기에서 두 가지 방법으로 동일한 결과를 얻을 수 있는 방법을 살펴보겠습니다.

시작하겠습니다.

Playground에서 두 가지 예를 모두 볼 수 있습니다.

1단계 - Xcode → 새 플레이그라운드를 엽니다.

첫 번째 접근 방식에서는 지정된 시간에 실행할 작업 항목을 예약하고 즉시 반환하는 asyncAfter(deadline:execute:) 인스턴스 메서드를 사용할 것입니다.

https://developer.apple.com/documentation/dispatch/dispatchqueue/2300020-asyncafter

에서 자세한 내용을 읽을 수 있습니다.

2단계 - Playground에서 아래 코드를 복사하여 실행합니다.

func functionOne() {
   let delayTime = DispatchTime.now() + 3.0
   print("one")
   DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
      hello()
   })
}
func hello() {
   print("text")
} functionOne()

여기에서 하나의 함수 functionOne을 만들고 있습니다. 여기서 먼저 3초인 지연 시간을 선언합니다. 그런 다음 지연 시간을 매개 변수로 제공하고 3초 후에 hello() 함수를 실행하도록 요청하는 asyncAfter를 사용합니다.

위의 프로그램을 실행하면 먼저 "one"이 인쇄되고 3초 후에 "text"가 인쇄됩니다.

두 번째 접근 방식에서는 NSTimer를 사용할 것입니다.

Xcode→Single View 애플리케이션

에서 아래 코드를 복사할 수 있습니다.
class ViewController: UIViewController {
   override func viewDidLoad() {
      super.viewDidLoad()
      print("one")
      Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(ViewController.hello), userInfo: nil, repeats: false)
   }
   @objc func hello() {
      print("text")
   }
}

응용 프로그램을 실행하면 동일한 출력이 표시됩니다. 하나는 인쇄되고 3초 후에 텍스트가 인쇄됩니다.