0

非常に初心者の obj-c の質問です。

私の仕事は、ビューがロードされたときに簡単なシーケンスを実行することです:

  • 2秒間停止
  • メソッド1の実行
  • 2秒停止
  • メソッド2の実行
  • 2秒停止
  • メソッド3の実行

ブロックやその他の機能を使用できるように、このコードを iOS5+ 用に記述します。私は試した

[NSThread sleepForTimeInterval:x];

メソッドの実行の間に一時停止を作成しますが、1 つに 3 つの一時停止が追加され、大きな一時停止が 1 つあるため、間違った部分です。これを正しい方法で行う方法は?

4

3 に答える 3

3

performSelector:withObject:afterDelay:、または CodaFi が言ったように、NSTimer を使用できます。どちらのメソッドでもオブジェクトをメソッドに渡すことができ、複数の引数を渡す必要がある場合、そのオブジェクトは配列または辞書にすることができます。

于 2012-11-10T16:17:17.963 に答える
3

NSThread をスリープ状態にすることは、時間指定されたメソッドの実行を処理する正しい方法ではありません。NSTimerが必要です。これは、2 秒後に同じメソッドを起動するように設定するか (次に、そのメソッドが次に実行するセレクタを決定するようにします)、または 3 つのタイマーを互いに 2 秒後に起動するように設定し、それぞれが異なるメソッドを呼び出すように設定できます。

于 2012-11-10T16:06:30.670 に答える
1

メソッドを連鎖させます:

  • 1. メソッドを呼び出し、2. メソッドを呼び出すようにします。
    1. メソッドは 3 を呼び出す必要があります。
    1. 4に進む必要があります... ...
于 2012-11-10T20:15:55.327 に答える