2011-01-24 2 views

ответ

6

В более общем случае для классаmyClass, который наследует NSObject:

if ([myClass instancesRespondToSelector: @selector(mySelector)])

для объектаmyObject, который наследует NSObject:

if ([myObject respondsToSelector: @selector(mySelector)])

+0

+1 Верхний совет относительно экземпляровRespondToSelector. –

+0

@middaparka спасибо, однако первая идея была чем-то вроде '[[[myClass alloc] autorelease] отвечаетSoSelector: @selector (mySelector)]' :-) –

1

Часть кода, как это:

if ([[UIApplication sharedApplication] respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]) { 
2

Вы можете просто использовать метод «respondsToSelector» в каждом классе следующим образом;

if([targetObject respondsToSelector:@selector(myOptionalMethod)]) { 
    [targetObject myOptionalMethod]; 
} 
+0

для класса, который вы не можете использовать responsesToSelector –

+0

@Martin Babacaev Я имел в виду объект (изменил настройку), если вы имеете в виду тот факт, что вы не можете использовать responsesToSelector в классе, который не был создан. :-) –

+0

Aha .. ok then;) –

Смежные вопросы