Sobes.tech
Junior — Middle

Kādi dispečera veidi nav pakļauti modifikācijai, izmantojot Swizzling metodi?

sobes.tech AI

Atbilde no AI

iOS programmā Swizzling metode ļauj mainīt metožu realizāciju izpildes laikā, bet tas darbojas tikai ar Objective-C dinamisko izplatīšanu (dispatch). Dispatch veidi, kurus nevar mainīt ar Swizzling:

  • Statiska dispatch (piemēram, C vai C++ funkciju izsaukumi bez virtuālām metodēm).
  • Swift dispatch, izmantojot statiski atrisinātas metodes (piemēram, final metodes vai struktūru metodes).
  • Metodes izsaukumi, kas netiek īstenoti caur Objective-C runtime (piemēram, metodes, kas nav marķētas ar @objc).

Tādējādi, Swizzling ir piemērojams tikai metodēm, kas iet caur Objective-C runtime, un nedarbojas ar tīri Swift metodēm bez @objc.