Sobes.tech
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.