Sobes.tech
Junior — Middle

Como irá mudar o mecanismo de despacho ao herdar um objeto da classe NSObject?

sobes.tech IA

Resposta da IA

Ao herdar de NSObject em Objective-C ou Swift, o objeto tem acesso ao mecanismo de despacho dinâmico de mensagens, baseado no runtime do Objective-C. Isso significa que as chamadas de métodos são tratadas através do envio de mensagens, e não por ligação estática.

Em particular, ao chamar um método, a implementação é procurada na tabela de métodos da classe em tempo de execução, o que permite usar recursos como adição dinâmica de métodos, sobrescrita, encaminhamento de mensagens (forwarding) e resolução dinâmica de métodos.

Se um objeto não herda de NSObject, por exemplo, em Swift puro sem NSObject, é utilizado o despacho estático ou o mecanismo vtable, que é menos flexível, mas mais rápido. Assim, herdar de NSObject inclui o objeto no sistema de despacho dinâmico do runtime do Objective-C.