Sobes.tech
Junior — Middle

Welke soorten dispatching kunnen niet worden gewijzigd via de Swizzling-methode?

sobes.tech AI

Antwoord van AI

De Swizzling-methode in iOS stelt je in staat om de implementaties van methoden tijdens runtime te wijzigen, maar werkt alleen met de dynamische dispatch van Objective-C. Types dispatch die niet kunnen worden gewijzigd via Swizzling:

  • Statische dispatch (bijvoorbeeld, C- of C++-functies zonder virtuele methoden).
  • Swift dispatch met gebruik van statisch resolveerde methoden (bijvoorbeeld, final-methoden of methoden van structuren).
  • Method-aanroepen die niet via de Objective-C-runtime worden geïmplementeerd (bijvoorbeeld, methoden niet gemarkeerd met @objc).

Dus, Swizzling is alleen toepasbaar op methoden die door de Objective-C-runtime gaan en werkt niet met puur Swift-methoden zonder @objc.