Sobes.tech
Junior — Middle

Quels types de dispatching ne peuvent pas être modifiés par la méthode Swizzling?

sobes.tech IA

Réponse de l'IA

La méthode Swizzling sur iOS permet de modifier les implémentations des méthodes à l'exécution, mais elle ne fonctionne qu'avec la dispatch dynamique d'Objective-C. Les types de dispatch qui ne peuvent pas être modifiés via Swizzling:

  • Dispatch statique (par exemple, les appels de fonctions C ou C++ sans méthodes virtuelles).
  • Dispatch Swift utilisant des méthodes résolues statiquement (par exemple, méthodes finales ou méthodes de structures).
  • Appels de méthodes qui ne sont pas implémentés via le runtime Objective-C (par exemple, méthodes non marquées @objc).

Ainsi, le Swizzling ne s'applique qu'aux méthodes qui passent par le runtime Objective-C et ne fonctionne pas avec des méthodes Swift pures sans @objc.