Sobes.tech
Junior — Middle

Welche Arten der Dispatching können nicht durch die Swizzling-Methode modifiziert werden?

sobes.tech KI

Antwort von AI

Die Swizzling-Methode in iOS ermöglicht es, die Implementierungen von Methoden zur Laufzeit zu ändern, funktioniert jedoch nur mit der dynamischen Dispatch von Objective-C. Arten der Dispatch, die nicht durch Swizzling modifiziert werden können:

  • Statische Dispatch (z.B. Aufrufe von C- oder C++-Funktionen ohne virtuelle Methoden).
  • Swift-Dispatch unter Verwendung statisch aufgelöster Methoden (z.B. final-Methoden oder Strukturelemente).
  • Methodenaufrufe, die nicht über die Objective-C-Laufzeit implementiert sind (z.B. Methoden, die nicht mit @objc markiert sind).

Daher ist Swizzling nur auf Methoden anwendbar, die durch die Objective-C-Laufzeit laufen, und funktioniert nicht mit rein Swift-Methoden ohne @objc.