¿Hay alguna forma de descubrir en tiempo de ejecución qué subclases existen de una clase determinada?Descubre las subclases de una clase determinada en Obj-C
Edit: De las respuestas hasta ahora creo que necesito aclarar un poco más lo que estoy tratando de hacer. Soy consciente de que esta no es una práctica común en Cocoa, y que puede venir con algunas advertencias.
Estoy escribiendo un analizador utilizando el patrón de creación dinámica. (Consulte el libro Cocoa Design Patterns por Buck y Yacktman, capítulo 5.) Básicamente, la instancia del analizador procesa una pila y crea instancias de objetos que saben cómo realizar ciertos cálculos.
Si puedo obtener todas las subclases de la clase MYCommand
, puedo, por ejemplo, proporcionar al usuario una lista de comandos disponibles. Además, en el ejemplo del capítulo 5, el analizador sintáctico tiene un diccionario de sustitución para que se puedan usar operadores como +, -, * y /. (Están mapeados al MYAddCommand
, etc.). A mí me pareció que esta información pertenecía a la subclase MyCommand
, no a la instancia del analizador, ya que de alguna manera se frustra la idea de la creación dinámica.
Esto parece ser el camino correcto para ir. Especialmente dado que la documentación menciona que se llama al método '+ load' de una clase después de todos sus métodos de superclases' '+ load'. Muchas gracias a las otras personas que proporcionaron respuestas también, sus respuestas también fueron geniales. –
Las subclases de MyCommand no invocarán + cargar en su superclase. + load solo se llama en las clases que lo implementan. –
¡Sorprendido de que alguien me haya tardado tanto en corregirme! En general, estoy de acuerdo con las respuestas aquí que el registro automático es una mala idea y debería manejarse un poco más manualmente. –