Sobes.tech
Junior — Middle

Кадом намудҳои диспетчериро бо усули Swizzling тағир додан мумкин нест?

sobes.tech AI

Ҷавоб аз AI

Дарсҳои Swizzling дар iOS имкон медиҳанд, ки иҷрои методҳоро дар вақти иҷрои барнома тағир диҳед, аммо танҳо бо истифода аз dispatch-и динамикии Objective-C кор мекунад. Навъҳои dispatch, ки бо Swizzling тағир дода намешаванд:

  • Dispatch-и статикӣ (масалан, фармонҳои C ё C++ бе методҳои виртуалӣ).
  • Dispatch-и Swift бо истифода аз методҳои статикӣ ҳалшуда (масалан, методҳои финалӣ ё методҳои сохторҳо).
  • Фармонҳои методҳо, ки тавассути runtime-и Objective-C иҷро намешаванд (масалан, методҳое, ки @objc намебошанд).

Аз ин рӯ, Swizzling танҳо ба методҳое дахл дорад, ки тавассути runtime-и Objective-C мегузаранд ва бо методҳои тозаи Swift бе @objc кор намекунад.