Ich habe 2 Klassen, Parent und Child, und Parent hat eine Klassenmethode namens func. Nun möchte ich Klasseninstanz in func-Methode zu unterscheiden, welche Klasse Anrufer ist.Objective-c: Wie bekomme ich Klasseninstanz in Klassenmethode
@interface Parent : NSObject
+ (void)func;
@end
@implementation Parent
+ (void)func {
Class *class = howToGetClass();
NSLog(@"%@ call func", class);
}
@end
@interface Child : Parent
@end
int main() {
[Child func]; // call func from Child
}
Gibt es eine Möglichkeit, Klasseninstanz (oder Klassenname) in der Klassenmethode zu erhalten?
Ich versuche einige Hilfsmethoden (wie all() in django) zu NSManagedObject hinzuzufügen. Also muss ich den Anrufer unterscheiden. Mit 'selbst' wollte ich wissen! Vielen Dank! – taichino
Es war nicht ich, wer unten gewählt, aber ich überprüfte einfach, und in einer Klassenmethode self == [self class] Just sah, dass dies in einem anderen Kommentar gesagt worden war, aber um zu klären, sie sind IDENTISCH, zumindest in einer Klassenmethode. Sie hatten also Recht, und so war ich –
Class * class = self; ist falsch. Löschen *. Korrekte Syntax ist: Class class = self; – Lukasz