Junior — Middle
Da li je moguće izvršiti statičku dispatch metoda u klasi?
sobes.tech АИ
Одговор од АИ
U iOS (Objective-C i Swift), statičko usmeravanje metoda je moguće za metode koje su definisane kao statičke (metode klase u Objective-C ili static/ class func u Swift). Takve metode se pozivaju direktno po imenu klase i rešavaju se u fazi kompajlacije.
Za razliku od dinamičkog usmeravanja (koje se koristi za instance metode i omogućava izbor implementacije u toku izvršenja), statičko usmeravanje je brže, ali manje fleksibilno.
Primer u Swift:
class MyClass {
static func staticMethod() {
print("Statička metoda")
}
func instanceMethod() {
print("Metod instance")
}
}
MyClass.staticMethod() // poziv statičke metode
let obj = MyClass()
obj.instanceMethod() // poziv instance metode
Dakle, u iOS klasama je moguće statičko usmeravanje za statičke metode.