我一直在创建可用于修改我创建的NSTimer的UISlider时遇到问题。本质上滑块是修改NSTimer正在倒计时的整数,但当我尝试移动UISlider时,应用程序崩溃,我假设这是因为它干扰正在发生的倒计时,但我不不知道该怎么做才能解决这个问题。UISlider在移动时修改NSTimer间隔崩溃应用程序
下面是相关代码
- (void)viewDidLoad {
[label setFont:[UIFont fontWithName:@"DBLCDTempBlack" size:36.0]];
label.text = @"I0A0IN6";
mainInt = mySlider.value;
timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/1.0) target:self selector:@selector (timerVoid) userInfo:nil repeats:YES];
[super viewDidLoad];
}
- (void)timerVoid {
mainInt += -1;
if (mainInt == 0) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Break Time!"
message:@"Time to take a break, please go to the exorcises page during your break inorder to maximise it"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
[mainInt invalidate];
}
[label setFont:[UIFont fontWithName:@"DBLCDTempBlack" size:36.0]];
label.text=[NSString stringWithFormat:@"%d" , mainInt];
}
滑块被称为mySlider,并且它修改整数 “mainInt”(第5行)。
请张贴在滑块的valueChanged事件上调用的选择器的代码。为什么你有'[mainInt invalidate];'line?也许你的意思是'[timer invalidate];'?有几个额外的小变化,你最好对你的代码做,但没有一个是要解决你的问题... – 2010-08-28 09:02:35
我的歉意,我试着不同的修复自己,并且必须留下mainInt出于某种原因,你说得对,应该是定时器invaldate, 我不完全确定你的意思是“请张贴在滑块的valueChanged事件上调用的选择器的代码。”我不相信我有任何类似的事情,我所做的就是将UIslider的功能链接到IB(“\t IBOutlet UISlider * mySlider;”)的滑块,然后将该值设置为等于定时器中使用的变量。 – 2010-08-28 09:26:19