通过重置NSTimer来EXC_BAD_ACCESS

mab*_*rei 4 iphone cocoa-touch objective-c

我想用新的TimeInterval重置两个NSTimers.如果我知道在重置它们之前它们是否未被释放,那将是没有问题的.

我不能这样工作:

[timer invalidate];

if(startTimers == YES)
   timer = [NSTimer scheduledTimerWithTimerInterval:...]
Run Code Online (Sandbox Code Playgroud)

因为在我使计时器失效之前我不知道计时器是否无效.

如果我使释放的计时器无效(在失效时计时器被释放),我得到一个EXC_BAD_ACCESS.

Bri*_*ian 15

释放计时器时,还将其变量设置为nil.[timer invalidate]如果计时器为零,那么将默默地做任何事情.

[timer invalidate];
timer = nil;
Run Code Online (Sandbox Code Playgroud)