Возможно, это не самое элегантное, но я создал другую процедуру, чтобы вызывать процедуру с помощью bool.Это упрощает работу селектора и не требует доступа для изменения оригинальной процедуры.
[Добавлено Ash] Вот пример, который понижает альфа-значение получателя, когда установлено логическое свойство:
- (void) setVisible:(BOOL)visible
{
_visible = visible;
self.alpha = 0.0;
}
- (void) setVisibleUsingNSNumber:(NSNumber *)visible
{
self.visible = [visible boolValue];
}
Затем вы можете запустить это после задержки следующим образом:
[self performSelector:@selector(setVisibleUsingNSNumber:)
withObject:[NSNumber numberWithBool:YES]
afterDelay:0.5];
Обратите внимание, что в эти дни также можно использовать Grand Central Dispatch, и в этом случае вы можете использовать стандартный метод установки внутриблокировать обход всего этого лишнего кода.Однако отменить вызов executeSelector намного проще, чем обнаружить отмену в отложенном выполнении блока.