Sobes.tech
Junior — Middle

Jaké typy dispatchingu nelze upravit pomocí metody Swizzling?

sobes.tech AI

Odpověď od AI

Metoda Swizzling v iOS umožňuje měnit implementace metod za běhu, ale funguje pouze s dynamickým dispatchingem Objective-C. Typy dispatchingu, které nelze modifikovat pomocí Swizzling:

  • Statický dispatch (například volání funkcí C nebo C++ bez virtuálních metod).
  • Dispatch Swift s použitím staticky rozřešených metod (například final metody nebo metody struktur).
  • Volání metod, které nejsou implementovány přes runtime Objective-C (například metody, které nejsou označeny @objc).

Proto je Swizzling použitelný pouze na metody, které procházejí přes runtime Objective-C, a nefunguje s čistě Swift metodami bez @objc.