From b8692cd6707f288a7b9115c997aef26ec14e2fd3 Mon Sep 17 00:00:00 2001 From: hydra2050 Date: Fri, 6 Feb 2015 22:02:08 +0800 Subject: [PATCH] Fix a crash when time's selecter set self to nil, cause to a zombie. --- MSWeakTimer.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/MSWeakTimer.m b/MSWeakTimer.m index 78efe97..55946db 100644 --- a/MSWeakTimer.m +++ b/MSWeakTimer.m @@ -201,16 +201,17 @@ - (void)timerFired { return; } - + + MSWeakTimer *strongSelf = self; // We're not worried about this warning because the selector we're calling doesn't return a +1 object. #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [self.target performSelector:self.selector withObject:self]; #pragma clang diagnostic pop - if (!self.repeats) + if (!strongSelf.repeats) { - [self invalidate]; + [strongSelf invalidate]; } }