用“ true”执行布尔变量-仅延迟一次-然后正常

问题描述

一个有趣的问题。 我该如何执行

dispatchQueue.main.asyncAfter(deadline: .Now()+3,execute: {
var = true
}) - only once with this delay,than - normaly? (without delay?)
var = true

我尝试过懒惰,但这无济于事...。也许在dispatchQueue.main.asyncAfter有mpdificator之类的东西之后?

解决方法

根据变量的布尔值更改延迟:

    let delay = myVar == true ? 0.0 : 3.0
    DispatchQueue.main.asyncAfter(deadline: .now() + delay,execute: {
        myVar = true
    })