Я смотрел this, но не нашел решение.Check Objective-C класс блока
У меня есть таймер
self.checklinkTimer = [NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(doWithHandler:)
userInfo:nil
repeats:YES];
и метод
-(void) doWithHandler:(void (^)(BOOL isValid))handler
{
handler(isSessionValid);
}
и другой метод, где я использовать логическое значение из doWithHandler
метода.
В doWithHandler
Мне нужно проверить, является ли обработчик классом NSTimer, и в этом случае не делать handler(isSessionValid)
.
Я пробовал if (! [(id)handler isKindOfClass:[NSTimer class]])
или @try @catch
, но это не работает.
Вопрос: как я могу проверить класс блока?
«но это не работает так»: Пожалуйста, объясните. –
Почему этот параметр никогда не был чем-то иным, чем 'NSTimer'? – Droppy
Документы: «Таймер передает себя как аргумент, таким образом, метод примет следующий шаблон: - (void) timerFireMethod: (NSTimer *) timer». –