【Obj-C】NSThread sleepForTimeInterval にてとある動作を一時停止

iPhone開発 NSThread sleepForTimeInterval にてとある動作を一時停止

とある処理中等や、わざと一瞬とある処理を動きを止めたい
ことが先日あったので、処理の前に下記のロジックにて停止させたのですが、
メインスレッドの中で実行したので、案の定 UI 等全体の処理が止まってしまいました。

[NSThread sleepForTimeInterval:1.0];

UI等、全体の処理も停止しても問題がない場合は上記でも良いのですが、
UI等、メインスレッド等を停止したくなかったので、下記のように
別スレッドにて実行させたのですが、今度は処理終了後全体が停止してしまった・・・

[NSThread detachNewThreadSelector:@selector(stoppThread)
                                     toTarget:self
                                   withObject:nil];
- (void)stoppThread {
    [NSThread sleepForTimeInterval:0.5];
    
    AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
    [app setGameClearView];
}

取り急ぎ、タイマーメッソドにて実行したらうまく動作したので、それにて今回は解決にしました。

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(stoppThread) userInfo:nil repeats:NO];

また、時間のある時に調査します。

 

タイトルとURLをコピーしました