Junior — Middle
Aké typy dispatchingu nie je možné upraviť pomocou metódy Swizzling?
sobes.tech AI
Odpoveď od AI
Metóda Swizzling v iOS umožňuje meniť implementácie metód za behu, ale funguje iba s dynamickým dispatchom Objective-C. Typy dispatchu, ktoré nie je možné modifikovať pomocou Swizzling:
- Statický dispatch (napríklad volania funkcií C alebo C++ bez virtuálnych metód).
- Dispatch Swift s použitím staticky vyriešených metód (napríklad, finálne metódy alebo metódy štruktúr).
- Volania metód, ktoré nie sú implementované cez runtime Objective-C (napríklad, metódy, ktoré nie sú označené @objc).
Preto je Swizzling aplikovateľný iba na metódy, ktoré prechádzajú cez runtime Objective-C, a nefunguje s čistými Swift metódami bez @objc.