Sobes.tech
Junior — Middle

Որ տեսակի դիսպետչինգները հնարավոր չէ փոփոխել Swizzling մեթոդով։

sobes.tech AI

Պատասխան AI-ից

iOS-ում Swizzling մեթոդը թույլ է տալիս փոխել մեթոդների իրականացմանը ժամանակի ընթացքում, բայց աշխատում է միայն Objective-C-ի դինամիկ դիսպետչի հետ։ Տիպերի դիսպետչ, որոնք չեն ենթակա փոփոխության Swizzling-ի միջոցով՝

  • Ստատիկ դիսպետչ (օրինակ՝ C կամ C++ ֆունկցիաներ առանց վիրտուալ մեթոդների)
  • Swift-ի դիսպետչ՝ օգտագործելով ստատիկորեն լուծված մեթոդներ (օրինակ՝ վերջնական մեթոդներ կամ կառուցվածքների մեթոդներ)
  • մեթոդների կանչեր, որոնք չեն իրականացվում Objective-C runtime-ի միջոցով (օրինակ՝ մեթոդներ, որոնք նշված չեն @objc-ով)

Արդյունքում, Swizzling-ը կիրառելի է միայն այն մեթոդների վրա, որոնք անցնում են Objective-C runtime-ի միջոցով, և չի աշխատում միայն Swift մեթոդների հետ առանց @objc-ի։