Sobes.tech
Junior — Middle

Kokie dispečerinimo tipai negali būti keičiami naudojant Swizzling metodą?

sobes.tech AI

Atsakymas iš AI

iOS programoje Swizzling metodas leidžia keisti metodų įgyvendinimus vykdymo metu, tačiau jis veikia tik su Objective-C dinaminio paskirstymo (dispatch) sistema. Tipai paskirstymo, kurie negali būti modifikuoti per Swizzling:

  • Statinis paskirstymas (pavyzdžiui, C ar C++ funkcijų kvietimai be virtualių metodų).
  • Swift paskirstymas naudojant statiškai išspręstus metodus (pavyzdžiui, final metodus arba struktūrų metodus).
  • Metodų kvietimai, kurie nėra įgyvendinti per Objective-C runtime (pavyzdžiui, metodai, pažymėti ne @objc).

Todėl, Swizzling taikomas tik tiems metodams, kurie eina per Objective-C runtime, ir neveikia su grynais Swift metodais be @objc.