簡體   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