Rom*_*nok 2 objective-c nstimer ios
我NSTimer在按钮点击停止时遇到问题.[timer invalidate]并且timer = nil;不需要做任何事情都不当我试图阻止它viewWillDisappear也不是方法,通过它正在此计时器调用的方法调用.但是,当我启动计时器viewWillAppear并使其无效时,viewWillDisappear一切都很好.
我想在线程中可能存在一个问题我正在启动计时器.你可以帮忙吗?
我在这里查看了所有关于NSTimer不停止的答案,但他们没有帮助解决问题.
我初始化我的计时器的方式:
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(oneSecondPassedSinceRoundStarted) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)
我试图阻止它的方式:
[self.timer invalidate];
[timer invalidate];
Run Code Online (Sandbox Code Playgroud)
在你寻求帮助后,你能快速回答自己的问题,这很有趣.无论你多久都在努力寻找自己的答案:
[self performSelectorOnMainThread:@selector(stopTimer) withObject:nil waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)
而选择器:
- (void) stopTimer
{
[timer invalidate];
timer = nil;
}
Run Code Online (Sandbox Code Playgroud)
我创建并测试了这个:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(oneSecondPassedSinceRoundStarted:) userInfo:nil repeats:YES];
}
-(void)oneSecondPassedSinceRoundStarted:(NSTimer *)time {
// Do what You want
NSLog(@"CALLING!");
}
-(IBAction)buttonAction:(id)sender {
NSLog(@"Stop timer!");
[myTimer invalidate];
myTimer = nil;
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
注意:您忘记在oneSecondPassedSinceRoundStarted之后添加冒号.
| 归档时间: |
|
| 查看次数: |
14371 次 |
| 最近记录: |