Sobes.tech
Junior — Middle

Може ли да се објави протокол за проширење у декларацији са навођењем другог протокола да наследи његове особине?

sobes.tech АИ

Одговор од АИ

U Swift-u, protokoli mogu naslediti svojstva i metode od drugih protokola. Međutim, extension protokoli (extension protocols) se ne objavljuju odvojeno — proširenja se primenjuju na postojeće protokole.

Ako želite da jedan protokol nasledjuje drugi, to eksplicitno objavljujete:

protocol A {
    func methodA()
}

protocol B: A {
    func methodB()
}

Ovde, protokol B nasledjuje protokol A i zahteva implementaciju oba metoda.

Protokol proširenja (extension) omogućava dodavanje implementacija metoda, ali ne i deklarisanje novog protokola sa nasledjivanjem. Dakle, protokol proširenja sa nasledjivanjem od drugih svojstava može se deklarisati samo putem normalnog nasledjivanja protokola, a ne putem proširenja.