5
NSTimerを使用して指数バックオフを使用してリトライロジックを実装しようとしています。私のコードは次のようになり :NSTimerを使用して指数バックオフでリトライロジックを実装する
-(void)start
{
[NSTimer scheduledTimerWithTimeInterval:0.0 target:self
selector:@selector(startWithTimer:) userInfo:nil repeats:NO];
}
-(void)startWithTimer:(NSTimer *)timer
{
if (!data.ready) {
// timer.timeInterval == 0.0 ALWAYS!
NSTimeInterval newInterval = timer.timeInterval >= 0.1 ? timer.timeInterval * 2 : 0.1;
newInterval = MIN(60.0, newInterval);
NSLog(@"Data provider not ready. Will try again in %f seconds.", newInterval);
NSTimer * startTimer = [NSTimer scheduledTimerWithTimeInterval:newInterval target:self
selector:@selector(startWithTimer:) userInfo:nil repeats:NO];
// startTimer.timeInteval == 0.0 ALWAYS!
return;
}
...
}
私がいる問題は、タイマーNSTimer scheduledTimerWithTimeIntervalは、私が提供し、常に0.0に設定しますよ間隔を無視しているようだということです。私がここで間違っていることに関する提案はありますか?
ありがとうございます!私は次回にドキュメントを読むべきだと思う。 :) – Ivan