스위프트 3에서는 GCD의 구문이 상당히 바뀌 었습니다.DispatchQueue.main.asyncAfter (마감 : .now() + 5.0)는 Swift 3에서 어떻게 작동합니까?
호출 dispatch_after하는()는 현재 다음과 같습니다 :이 호출 후
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {//do something}
그 코드 블록을 5 초 호출 할 것이다.
어떻게 작동합니까? docs는 데드 라인 매개 변수가 dispatch_time_t
이며 이는 UInt64의 유형입니다. 나노초 단위의 시간이라고 가정합니다. 그러나 .now() + delay
구문은 10 진수 초를 값에 추가합니다. DispatchTime.now()는 UInt64를 반환하지 않습니까? 그렇다면 10 진수 초를 추가하면 작동하지 않습니다. 무엇이든간에, 나는 .now()
에 추가 된 값이 나노초로 취급되기를 기대하며 이는별로 유용하지 않을 것입니다.
:
나는이 스레드에서 내 자신의 질문에 대한 답을 발견
Xcode에서 '+'를 command- 클릭하면 선언을 볼 수 있습니다. –
@ MartinR, 제안에 감사드립니다. 그것을하기 위해서, 그것을 수행하는'+'연산자의 오버라이드라는 것이 나에게 발생했을 것입니다. –
응용 프로그램 개발자가 사용하는 가장 일반적인 형식 일 수 있으므로 지연 시간 값을 사용하는이 호출 형식이 현재 마하 시간에 비례하지 않아야하는 것처럼 보입니다. 아주 간단한 확장이지만, 내장되어 있어야합니다. –