반응형
신속한 지연 기능
이 질문에는 이미 답변이 있습니다.
- dispatch_after-스위프트의 GCD? 답변 23 개
어떻게 해야할지 모르겠 기 때문에 샘플 코드 또는 기타 코드가 없지만 누군가가 정해진 시간 동안 신속하게 기능을 지연시키는 방법을 알려 줄 수 있습니까?
GCD를 사용할 수 있습니다 (예 : 10 초 지연).
스위프트 2
let triggerTime = (Int64(NSEC_PER_SEC) * 10)
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, triggerTime), dispatch_get_main_queue(), { () -> Void in
self.functionToCall()
})
스위프트 3과 스위프트 4
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0, execute: {
self.functionToCall()
})
10 초 지연된 Swift 3 버전
unowned let unownedSelf = self
let deadlineTime = DispatchTime.now() + 10.0
DispatchQueue.main.asyncAfter(deadline: deadlineTime, execute: {
unownedSelf.functionToCall()
})
NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(3), target: self, selector: "functionHere", userInfo: nil, repeats: false)
3 초 지연된 functionHere () 함수를 호출합니다.
지연 함수에 인수를 추가합니다.
먼저 사전을 설정 한 후 userInfo로 추가하십시오. 타이머를 인수로 사용하여 정보의 랩을 해제하십시오.
let arg : Int = 42
let infoDict : [String : AnyObject] = ["argumentInt", arg]
NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(3), target: self, selector: "functionHereWithArgument:", userInfo: infoDict, repeats: false)
그런 다음 호출 된 함수에서
func functionHereWithArgument (timer : NSTimer)
{
if let userInfo = timer.userInfo as? Dictionary<String, AnyObject>
{
let argumentInt : Int = (userInfo[argumentInt] as! Int)
}
}
참고 URL : https://stackoverflow.com/questions/28821722/delaying-function-in-swift
반응형
'programing tip' 카테고리의 다른 글
디버깅하지 않는 경우 Android Studio에서 "디버거 대기 중"이라고 표시하는 이유는 무엇입니까? (0) | 2020.07.16 |
---|---|
Android에서 EditText의 최소 및 최대 값을 정의하는 방법이 있습니까? (0) | 2020.07.16 |
CodeIgniter : 컨트롤러, 액션, URL 정보를 얻는 방법 (0) | 2020.07.16 |
HTML 링크에서 PDF 파일을 다운로드 할 수있게 만드는 방법은 무엇입니까? (0) | 2020.07.16 |
Yosemite에서 Ruby / Homebrew / RVM을 작동 시키려면 어떻게해야합니까? (0) | 2020.07.16 |