¿Cómo encontrar la dirección IMP correspondiente a través del selector en tiempo de ejecución?
Donde se almacenan las instancias y los métodos de clase:
Selector
Definición:
Traducido al chino, se llama selector o selector , que representa el identificador del método en tiempo de ejecución. Cuando se carga una clase, el compilador genera un selector correspondiente al método y lo registra en el sistema de ejecución Objective-C.
Hay dos formas comunes de obtener/crear un selector:
Prueba en la consola:
Ambos métodos imprimirán la cadena.
Podemos ver en el código fuente del método sel_getName() que SEL y const char * se pueden convertir entre sí:
Si selA y selB se fuerzan a const char * :
p>
Los resultados anteriores muestran que selA y selB apuntan a la misma dirección y representan la misma cadena.
Si una clase implementa el método setString:, cuando estos dos selectores se pasen al método respondsToSelector(), ambos devolverán SÍ.
Implementación (IMP):
Definición:
Representa un puntero de función, que es el punto de entrada para la ejecución de la función. Las funciones utilizan llamadas C estándar.
Método
Definición:
Un método es un tipo opaco para el desarrollador que es un puntero a una estructura objc_method. La definición de objc_method es la siguiente:
Resumen de preguntas de la entrevista de iOS