Ich würde gerne wissen, ob eine Instanz eine bestimmte Methode implementiert. Ich könnte verwenden respondsToSelector:
aber es gibt YES zurück, wenn die Instanz die Methode erbt...
Ich könnte eine Schleife durch die Methoden von class_copyMethodList()
aber da ich möglicherweise viele Instanzen überprüfen möchte, wollte ich wissen, ob es eine einfachere Lösung gibt (wie repondsToSelector:
aber beschränkt auf die Klasse selbst...)
edit: da ich wirklich glaube, dass es keine Funktion oder Methode gibt, die das tut, habe ich meine geschrieben. Vielen Dank für Ihre Antworten, hier ist die Methode, wenn es von irgendeinem Nutzen sein kann:
+ (BOOL)class:(Class)aClass implementsSelector:(SEL)aSelector
{
Method *methods;
unsigned int count;
unsigned int i;
methods = class_copyMethodList(aClass, &count);
BOOL implementsSelector = NO;
for (i = 0; i < count; i++) {
if (sel_isEqual(method_getName(methods[i]), aSelector)) {
implementsSelector = YES;
break;
}
}
free(methods);
return implementsSelector;
}