1. ホーム
  2. objective-c

[解決済み] 次の2行の実行の間に遅延を追加する

2023-05-22 05:58:10

質問

ある(同じ)関数内で、2行の実行の間に遅延を加えたいのです。これを行うための有利なオプションはありますか?

注意してください。 このために2つの異なる関数が必要なわけではありませんし、遅延が他の関数の実行に影響を及ぼしてはいけません。

例えば

line 1: [executing first operation];

line 2: Delay                        /* I need to introduce delay here */

line 3: [executing second operation];

どんな助けでも感謝します。前もってありがとうございます...

どのように解決するのですか?

別のメソッドを作ることなく、gcdを使用してこれを行うことができます。

// ObjC

NSTimeInterval delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
  NSLog(@"Do some work");
});

// Swift

DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
    print("Do some work)
}

遅延はしばしばコードを複雑にし、競合状態を引き起こす可能性があるため、「本当に遅延を追加する必要があるのか」と自問自答する必要があります。