繁体   English   中英

NSTimer暂停/恢复泄漏

[英]NSTimer Pause/ resume leak

我希望能够暂停/恢复我的NSTimer,并在下面找到答案

 NSDate *pauseStart, *previousFireDate; -(void) pauseTimer:(NSTimer *)timer { pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain]; previousFireDate = [[timer fireDate] retain]; [timer setFireDate:[NSDate distantFuture]]; } -(void) resumeTimer:(NSTimer *)timer { float pauseTime = -1*[pauseStart timeIntervalSinceNow]; [timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]]; [pauseStart release]; [previousFireDate release]; } 

效果很好。 但是,当测试我的App的泄漏时,它告诉我这里有泄漏:

[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];

谁能帮我? 您可以从我使用的代码中看到,pauseStart和previousFireDate保留在pauseTime方法中,并在resumeTimer方法中释放。

非常感谢

山姆

永远不要在对象上两次调用init (或同一族中的任何其他方法)两次。 这就是原因 )。 将该行更改为此:

[timer setFireDate:[NSDate dateWithTimeInterval:pauseTime sinceDate:previousFireDate]];

你会没事的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM