Tengo 2 clases, principal y secundaria, y el padre tiene un método de clase llamado func. Ahora quiero obtener la instancia de clase en el método func para distinguir qué clase es la que llama.Objective-c: cómo puedo obtener la instancia de clase en el método de clase
@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
}
¿Hay alguna forma de obtener la instancia de clase (o nombre de clase) en el método de clase?
Estoy tratando de agregar algunos métodos de utilidad (como all() en django) a NSManagedObject. Entonces necesito distinguir a la persona que llama. ¡Usar 'yo' es lo que quería saber! ¡Gracias! – taichino
No fui yo quien votó, sino que lo comprobé, y en un método de clase self == [self class] Acabo de ver esto en otro comentario, pero para aclarar, son IDENTICOS, en un método de clase al menos. Así que usted tenía razón, y yo también estaba –
Clase * class = self; Está Mal. Retirar *. La sintaxis correcta es: Class class = self; – Lukasz