没有延迟实现与ntimer



我想在每个输出结果之间延迟1秒。下面的代码没有延迟,而是正确处理。为什么每个dealCard之间没有延迟?

- (IBAction)startPause
{
    if ([self.deal length]>cardNum) {
        timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(dealCard) userInfo:nil repeats:NO];
        [timer fire];
    }
}

- (void) dealCard{
    card.text = [NSString stringWithFormat:@"%i",cardNum+1];
    cardTo.text = [self.deal substringWithRange:(NSRange){(cardNum+self.randCut)%[self.cardList count],1}];
    cardNum=cardNum + 1;
    [self startPause];
}

根据文档fire "使接收方的消息发送到其目标。"这就是为什么它会立即开火。

你的计时器也没有被安排,所以它永远不会自己触发。

像这样创建定时器,这样创建一个定时器,并在单个语句中调度它。

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

并完全删除[timer fire]线,因为它会在时间间隔结束后自行开火

最新更新