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.