【cocos2d】scheduleOnceで失敗。本当に1回しか呼べない
今日のハマりポイント第2弾はscheduleOnceです。
セレクターをscheduleOnceでスケジュールして、そのセレクターの中で別の時間を設定してscheduleOnceを再スケジュールするというような使い方を考えていましたがダメでした。
例:
- (id) init
{
....
[self scheduleOnce:@selector(func) delay:5.0];
}
- (void)func
{
....
[self scheduleOnce:@selector(func) delay:newdelay];
}
funcは最初の1回だけ呼ばれますが、2度と呼ばれません。unscheduleで一旦止めてもダメでした。
scheduleOnceを使うのはあきらめてscheduleを使い、一旦unscheduleしてから別のinterval値をセットすることでで解決しました。
例:
- (id) init
{
....
[self schedule:@selector(func) interval:5.0];
}
- (void)func
{
....
[self unschedule:@selector(func);
[self schedule:@selector(func) interval:newdelay];
}