ユーザーからログに記録された動きを実行するための再帰呼び出しがあります。次の再帰呼び出しを使用してアニメーションを実行しているときに、ユーザーが戻るボタンを押してビューコントローラーをスタックからポップすると、アニメーションが停止せず、コンソールにログエントリ(さまざまなログの動きを表す)が表示されます。
-(void)replayNextLog {
if ((replayLogIndex < [lastTurnGameLogList count]-1) && (!skipReplayButtonWasPressed)) {
float delayToNextReplay;
//the replayLogIndex ends with count-1 because the last one is empty due to the last empty line
NSDictionary *logEntryDict = [lastTurnGameLogList objectAtIndex:replayLogIndex];
for (id key in logEntryDict) {
if ([key isEqualToString:kGuessMoveTypeLetterButton]) {
} else if ([key isEqualToString:kGuessMoveTypeRevealHint]) {
} else if ([key isEqualToString:kGuessMoveTypeReset]) {
} else if ([key isEqualToString:kGuessMoveTypePass]) {
} else if ([key isEqualToString:kGuessMoveTypeShuffle]) {
}
}
replayLogIndex++;
// Recursive call
[self performSelector:@selector(replayNextLog) withObject:nil afterDelay:delayToNextReplay];
}
}
ビューコントローラのリークが原因である可能性がありますか?便宜上、VCのdeallocメソッドに到達していないことをお伝えしておきます。
前もって感謝します。
よろしく、オベイド