Tengo el siguiente problema: obtengo una instancia de una clase pasada y quiero saber el nombre de la clase de esta instancia. Cómo obtener esto?Obteniendo el nombre de la clase de una instancia
Respuesta
si todo lo que quiere hacer es probar un objeto para ver si se trata de un tipo de una cierta clase
BOOL test = [self isKindOfClass:[SomeClass class]];
Gracias, voy a usar esto :) – Robin
Upvoted para anticipar la necesidad en lugar de responder a la pregunta. –
Desde dentro de la propia clase
-(NSString *) className
{
return NSStringFromClass([self class]);
}
Absolutamente no quiero despertar tu enojo, pero esta fue la segunda respuesta relacionada con iOS en tu perfil. Me parece agregar solo que podemos referirnos a una instancia como "yo" desde su implementación. ¿Defenderías esto como agregar sustancialmente a la respuesta aceptada de tres años? – danh
@danh Veo que me estás cazando. ¡Bien por usted! –
Lo siento, acabo de hacer clic en este, y debatí sobre si decir algo. Solo quería hacer algunas burlas suaves, pero sé que los ánimos se calientan bastante rápido en estos entornos semi-sin rostro. Gracias por ser amable al respecto. (De hecho, +1 para practicar la encapsulación). – danh
Si está buscando cómo llegar nombreclase en Swift puedes usar reflect para obtener información sobre el objeto.
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}
o simplemente 'self.dynamicType' – jbg
Puede también utilizar [[self class] description]
Sólo añadir una categoría:
NSObject+Extensions.h
- (NSString *)className;
NSObject+Extensions.m
- (NSString *)className {
return NSStringFromClass(self.class);
}
A continuación, utilice el siguiente código:
NSString *className = [[SomeObject new] className];
o incluso:
NSString *className = SomeObject.new.className;
Para usarlo en cualquier lugar, agregue la categoría al archivo YourProject.pch.
Si se llama a una clase Swift, esto devuelve un nombre de clase namespaced. – Alper
- 1. Obteniendo el nombre de una clase de coffeescript?
- 2. VB.NET: Obtener el nombre de clase de una instancia
- 3. Obteniendo instancia de objeto por nombre de cadena en scala
- 4. Obteniendo el nombre de una clase hija en la clase padre (contexto estático)
- 5. Obteniendo el nombre de clase actual incluyendo el paquete
- 6. Obteniendo el nombre de una subclase dentro de una superclase
- 7. Creando una instancia de la clase interna
- 8. Obtener instancia de clase por nombre de clase cadena
- 9. ¿Crear una instancia de clase desde su nombre?
- 10. Obteniendo el nombre de la ventana activa
- 11. Obteniendo el tipo de Clase de Cadena
- 12. obteniendo la ruta de clase o espacio de nombre de una clase en python, incluso si está anidado
- 13. Obtener el nombre de un campo de una clase sin una instancia
- 14. Obteniendo una instancia de EhCache con Spring ... inteligentemente
- 15. C# - Obteniendo el valor de propiedad de la clase secundaria
- 16. Obteniendo el nombre de una DLL desde el dll
- 17. una instancia de una nueva clase del nombre de una variable en un espacio de nombres
- 18. Declarar una instancia de una clase dentro de esa clase
- 19. C# Reflexión: una instancia de un objeto con nombre de la clase cadena
- 20. Obteniendo el nombre mangled del nombre demandado
- 21. obteniendo el nombre completo de un ensamblaje
- 22. Clojure: creación de una nueva instancia del nombre de la clase String
- 23. Reflejo en Ruby. Crear una instancia de un objeto por el nombre de clase dado
- 24. declarar una instancia de una clase const
- 25. Creando una instancia de una clase con()
- 26. Miembros estáticos de una clase de instancia
- 27. Crear instancia de clase derivada de una instancia de clase base sin conocer los miembros de la clase
- 28. Cambiar el nombre de una instancia de servidor sql
- 29. ¿Crear instancia de clase objetivo-c por nombre?
- 30. Java cómo crear una instancia de una clase de cadena
Tal vez reformule su pregunta o acepte la respuesta que coincide con la pregunta? –
@JasperBlues: ¡Hecho, ni siquiera me di cuenta de lo popular que fue esto! – Robin