Sobes.tech
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.