-performSelector:withObject:afterDelay: のように、遅延後にブロックをトリガーするにはどうすればよいでしょうか? 質問する

-performSelector:withObject:afterDelay: のように、遅延後にブロックをトリガーするにはどうすればよいでしょうか? 質問する

のように遅延後にプリミティブ パラメーターを使用してブロックを呼び出す方法はありますか? ただし、//のようperformSelector:withObject:afterDelay:な引数を使用します。intdoublefloat

ベストアンサー1

あなたが探しているのは だと思いますdispatch_after()。ブロックはパラメータを受け入れないことを要求しますが、代わりにブロックがローカル スコープからそれらの変数をキャプチャするようにすることができます。

int parameter1 = 12;
float parameter2 = 144.1;

// Delay execution of my block for 10 seconds.
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
    NSLog(@"parameter1: %d parameter2: %f", parameter1, parameter2);
});

もっと:https://developer.apple.com/documentation/dispatch/1452876-dispatch_after

おすすめ記事