var maxCumulativeTime: Int32;
maxCumulativeTime = 10 * 60 * 1000;
let dispatchTimeNSEC = Int64(Double (maxCumulativeTime) * Double(NSEC_PER_MSEC))
let delayTime = DispatchTime.now() + Double(dispatchTimeNSEC)/Double(NSEC_PER_SEC)
DispatchQueue.main.asyncAfter(deadline: delayTime) {
doSomething()
}
delayTimeが短い場合(5秒など)、doSomething()が常に呼び出されます。 しかし、delayTimeが10分と長い場合、doSomething()は呼び出されません。iOS DispatchQueue.main.asyncAfter(deadline:delayTime)delayTimeがlongの場合はディスパッチしません。
私はアプリを実行し続けて、決してそれを殺しません。 10分の遅延時間中に電話がスリープ状態になります。しかし、私が電話を覚ました後、何かはまだ呼び出されていません。
スウィフト3では
「delayTime」の計算方法を表示できますか? –
私のプロジェクトでdelayTimeが – jiawen