いくつかのものをロードするのに数秒かかるアルゴリズムがあり、実際のロードを開始する前に、まずラベルに「ロード中」という文字列を設定したいと思います。これはすべて同じレイヤー内にあり、シーンを切り替えることはありません。
私はこれを簡単に行うことができると思いました:
-(void)startLoading{
[self unscheduleAllSelectors];//just in case the update is already scheduled
[self.loadingLabel setString:@"Loading...."];
[self scheduleUpdate];
}
次に、私はこれを持っています:
-(void)update:(ccTime)delta{
[self unscheduleUpdate];
[self beginLoading];//another method that loads all the stuff
}
私の理解では、私のメソッドbeginLoading
は次のフレームまで実行されるべきではありません。したがって、私のラベルは正しく更新されるはずです。しかし、これは起こっていません。すべてのアセットが読み込まれている間、わずかなフリーズが発生し、読み込みが開始される前にラベルが更新されることはありません。
私は一歩を逃していますか?