初心者obj-cの質問です。Appstore 向けではない簡単な iPad プレゼンテーションを作成しています。私の仕事は、いくつかのメソッドを実装し、それらの間に少しの休止を入れて次々と実行することです。主な構造は次のようになります。
- 負荷を表示
- 2 秒間一時停止してから、method1 を実行します
- 2 秒間一時停止してから、method2 を実行します
- 2 秒間一時停止してから、method3 を実行するなど...
-viewDidLoad から呼び出す最初のメソッド:
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(firstCountStarts) userInfo:nil repeats:NO];
ビューがロードされてから 2 秒後にメソッドが開始されます。method1 の内部から、同じ方法でメソッド 2 を呼び出そうとしますが、method1 と同時に実行を開始します。同様に、メソッド 3 (メソッド 2 から呼び出されます) をトリガーし、その後のすべてのメソッドはまったく実行されませんでした。このすべてのメソッドを -ViewDidLoad に配置し、遅延して呼び出すようにしました。
[self method1];
[self performSelector:@selector(method2) withObject:nil afterDelay:2];
[self performSelector:@selector(method3) withObject:nil afterDelay:4];
etc...
しかし、method2が実行されなかった後にすべてのメソッドを呼び出した後。スレッドの問題を正しく理解していれば。異なるキューでメソッドを実行するために GCD を使用する必要がありますか? それとも他に問題がありますか?
ありがとう、同僚!