好的,我解决了这个问题 我创建了一个数组,指向标签的指针,Droppy建议。
这是我的updateLabel方法,被单个计时器调用。
(void)updateLabel{
for(int i =0;i<[countdown count];i++){
int seconds,minute,hours,timeleft;
timeleft = [[countdown objectAtIndex:i]intValue];
NSLog(@"%i",timeleft);
seconds = timeleft%60;
minute = timeleft/60;
hours = minute /60;
UILabel *mylabel = [labelArray objectAtIndex:i];
mylabel.text = [NSString stringWithFormat:@"%i:%i:%i",hours,minute,seconds];
timeleft --;
NSLog(@"%@",countdown);
[countdown replaceObjectAtIndex:i withObject:[NSString stringWithFormat:@"%i",timeleft]];
NSLog(@"%@",countdown);
if(timeleft ==0){
[timer1 invalidate];
}
}
}
这是
countdown = [[NSMutableArray alloc]initWithObjects:@"1000" ,@"1523",@"234",@"600",@"900", nil];
希望这有助于正面临这同样的问题
研究的NSTimer – Paulw11 2014-10-17 09:17:30
了'userInfo'产权人已经尝试倒计时阵列的内容,即使我发每个NSTimer的timeleft作为其用户信息,其调用的方法不知道它从哪个定时器发送。 – 2014-10-17 09:18:21
我会使用一个始终运行的计时器,间隔为1秒。然后在一个数组中保留单独的“timeleft”值,也许使用指向相关文本字段的相关指针,并在定时器激活方法的循环中执行timeleft递减和更新文本字段。这将更容易维护和运行。 – Droppy 2014-10-17 09:19:23