Sobes.tech
Junior — Middle

Jakie rodzaje dispatchingu nie podlegają modyfikacji za pomocą metody Swizzling?

sobes.tech AI

Odpowiedź od AI

Metoda Swizzling w iOS pozwala na zmianę implementacji metod w czasie działania, ale działa tylko z dynamicznym dispatchem Objective-C. Rodzaje dispatchu, które nie podlegają modyfikacji przez Swizzling:

  • Dispatch statyczny (np. wywołania funkcji C lub C++ bez metod wirtualnych).
  • Dispatch Swift z użyciem statycznie rozstrzyganych metod (np. metody finalne lub metody struktur).
  • Wywołania metod, które nie są implementowane przez runtime Objective-C (np. metody nie oznaczone @objc).

W związku z tym, Swizzling jest stosowalny tylko do metod, które przechodzą przez runtime Objective-C, i nie działa z czysto Swiftowymi metodami bez @objc.