Sobes.tech
Junior — Middle

Je možné vykonávať statickú dispatch metód v triede?

sobes.tech AI

Odpoveď od AI

V iOS (Objective-C a Swift) je možné statické smerovanie metód pre metódy, ktoré sú definované ako statické (class methods v Objective-C alebo static/ class func v Swift). Takéto metódy sa volajú priamo podľa názvu triedy a sú vyriešené v čase kompilácie.

Na rozdiel od dynamického smerovania (ktoré sa používa pre inštančné metódy a umožňuje výber implementácie počas behu), je statické smerovanie rýchlejšie, ale menej flexibilné.

Príklad v Swift:

class MyClass {
    static func staticMethod() {
        print("Statická metóda")
    }

    func instanceMethod() {
        print("Inštančná metóda")
    }
}

MyClass.staticMethod() // volanie statickej metódy
let obj = MyClass()
obj.instanceMethod()   // volanie inštančnej metódy

Takže, v iOS triedach je možné statické smerovanie pre statické metódy.