Junior — Middle
შესაძლებელია კლასში სტატიკური მეთოდების დისპეჩერიზაცია?
sobes.tech AI
პასუხი AI-სგან
iOS (Objective-C და Swift)-ში სტატიკური მეთოდების გადამისამართება შესაძლებელია მათთვის, რომლებიც სტატიკურია (Objective-C-ში class methods ან Swift-ში static/ class func). ამ მეთოდებს პირდაპირ კლასის სახელით იძახიან და კომპილაციის დროს ხსნიან.
სინამდვილეში, დინამიური გადამისამართებისგან განსხვავებით (რომელიც გამოიყენება ინსტანციის მეთოდებისთვის და საშუალებას აძლევს რეალიზაციის არჩევას შესრულების დროს), სტატიკური გადამისამართება უფრო სწრაფია, მაგრამ ნაკლებად მოქნილი.
Swift-ის მაგალითი:
class MyClass {
static func staticMethod() {
print("სტატიკური მეთოდი")
}
func instanceMethod() {
print("ინსტანციის მეთოდი")
}
}
MyClass.staticMethod() // სტატიკური მეთოდის გამოძახება
let obj = MyClass()
obj.instanceMethod() // ინსტანციის მეთოდის გამოძახება
ამიტომ, iOS კლასებში შესაძლებელია სტატიკური მეთოდების სტატიკური გადამისამართება.