Sobes.tech
Junior — Middle

¿Cómo cambiará el mecanismo de despacho al heredar un objeto de la clase NSObject?

sobes.tech AI

Respuesta de la IA

Al heredar de NSObject en Objective-C o Swift, el objeto obtiene acceso al mecanismo de despacho dinámico de mensajes, basado en el tiempo de ejecución de Objective-C. Esto significa que las llamadas a métodos se manejan mediante el envío de mensajes, en lugar de enlace estático.

En particular, al llamar a un método, se busca la implementación en la tabla de métodos de la clase en tiempo de ejecución, lo que permite utilizar funciones como la adición dinámica de métodos, la sobrescritura, el reenvío de mensajes y la resolución dinámica de métodos.

Si un objeto no hereda de NSObject, por ejemplo, en Swift puro sin NSObject, se utiliza el despacho estático o el mecanismo vtable, que es menos flexible pero más rápido. Por lo tanto, heredar de NSObject incluye al objeto en el sistema de despacho dinámico del runtime de Objective-C.