Sobes.tech
Junior — Middle

Milyen műveletek vagy tulajdonságok érhetők el osztály definiálásakor, amelyek nem szerepelnek a struktúrában?

sobes.tech MI

Válasz az MI-től

Swiftben a osztályok több olyan jellemzővel rendelkeznek, amelyek nem találhatók meg a szerkezetekben:

  • Öröklődés: az osztályok örökölhetnek más osztályoktól, lehetővé téve hierarchiák létrehozását és módszerek felülírását.
  • Deinitializerek (deinit): az osztályok rendelkezhetnek deinitializerekkel az erőforrások felszabadítására, amikor egy példányt törölnek.
  • Referencia típus: az osztályokat referencia szerint adják át, míg a szerkezeteket érték szerint.
  • Tulajdonság típusok: az osztályoknak lehetnek olyan tulajdonságaik, amelyek objektumokra mutató referenciák, ez befolyásolja a memória kezelését.
  • weak és unowned referenciák használata a erős referenciaciklusok megelőzése érdekében.

Példa egy osztályra deinitializerrel:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) deinitializálódik")
    }
}