首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >timeIntervalSinceNow用于暂停和恢复计时器时出错

timeIntervalSinceNow用于暂停和恢复计时器时出错
EN

Stack Overflow用户
提问于 2012-06-19 04:56:28
回答 1查看 224关注 0票数 0

在我的代码中使用暂停计时器和恢复计时器来暂停和恢复计时器。获取错误'NSInvalidArgumentException', reason: '-[__NSCFNumber timeIntervalSinceNow]: unrecognized selector sent to instance 0x164590'

暂停定时器和恢复定时器代码

代码语言:javascript
运行
复制
-(void)pauseTimer{
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFireDate = [[timer fireDate] retain];
[timer setFireDate:[NSDate distantFuture]];
}
-(void)resumeTimer{
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
[pauseStart release];
[previousFireDate release];
}

在播放暂停切换按钮中使用暂停和恢复计时器

代码语言:javascript
运行
复制
-(void)playpauseAction:(id)sender {
if([audioPlayer isPlaying])
{
    [sender setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateSelected];
    [audioPlayer pause];
    [self pauseTimer];
}
else
{
    [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
    [audioPlayer play];
    [self resumeTimer];
    if(isFirstTime == YES)
    {
        self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
                                            target:self
                                            selector:@selector(displayviewsAction:)
                                            userInfo:nil
                                            repeats:NO];
        isFirstTime  = NO;
    }    
} 
}

是否知道应用程序终止的原因以及如何修复此问题。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-19 07:04:33

resumeTimer被调用两次时,pauseStartpreviousFireDate会被过度释放,应用程序可能会崩溃!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11090885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档