2017-02-12 1 views
0

지연 시간을 1 초 미만으로 만들려고합니다. 나는이 코드를 웹에서 발견했다. 그러나 1 초도 안되는 지연은 허용하지 않습니다. Grand Dispatch Concept in Swift는 나에게 약간의 수수께끼입니다. 0.3 초의 지연을 만들기 위해이 코드를 어떻게 수정해야합니까? 단지 DispatchTime.now()에 reqired 시간을 추가스위프트 3.0 : 1 초 미만의 지연

let deadlineTime = DispatchTime.now() + .milliseconds(300) // 0.3 seconds 

답변

4

글쎄, 그건 아주 쉽게, 초, 사용 밀리 초를 사용하지 않는 이게 잘 될거야

let delay = 2.5 * Double(NSEC_PER_SEC) 
let time = DispatchTime.now() + Double(Int64(delay))/Double(NSEC_PER_SEC) 

DispatchQueue.main.asyncAfter(deadline: time, execute: { 
    self.view_Alert.alpha = 0 
}) 
+2

을 확인 :') (+ 0.3' –

1

당신은 결과를

let deadlineTime = DispatchTime.now() + 0.3 //Here is 0.3 second as per your requirement 
    DispatchQueue.main.asyncAfter(deadline: deadlineTime) {   
     //code here 
    } 
+0

심지어 단지'DispatchQueue.main.asyncAfter deadlineTime = DispatchTime.now을 보자' – vacawama

+0

이 있습니다 (마감 + 0.3) (부탁해을) 이 답변에는 새로운 내용이 없으며 주석을 포함하여 첫 번째 내용 만 반복됩니다. –

-1

사용을 얻을 것이다 :

let deadlineTime = DispatchTime.now() + .seconds(1) //how to get 0.3 seconds here 
    DispatchQueue.main.asyncAfter(deadline: deadlineTime) {   
     //code here 
    } 
0
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { 
    // your method after delay 
} 

메인 스레드에서 실행됩니다. 당신이 그렇지 않으면 원하는 경우, 또는 DispatchQueue.global(qos:) 또는 this reference