Сбой из-за того, что он пытается invalidate
уже аннулированный таймер col1
.
Вы пробовали [col1 isValid]==YES
?Попробуйте, и если это не сработает, попробуйте использовать пользовательский флаг типа integer
или BOOL
.
У меня была похожая проблема с методом isValid
, и я нашел обходной путь, используяфлаг типа BOOL
Надеюсь, это поможет вам.
ОБРАЗЕЦ ИСПОЛЬЗОВАНИЯ ТАМОЖЕННЫХ ФЛАГОВ:
BOOL invalidateTimer = NO;
-(IBAction) play
{
if (invalidateTimer == YES)
{
[col1 invalidate];
}
else if (invalidateTimer == NO)
{
col1 = [NSTimer scheduledTimerWithTimeInterval:.8 target:self selector:@selector(playCol1) userInfo:nil repeats:YES];
invalidateTimer = YES;
}
}