Sobes.tech
Junior — Middle

Koje su prednosti i mane korišćenja tipa Unowned u programiranju?

sobes.tech АИ

Одговор од АИ

Tip unowned u Swift-u koristi se za kreiranje slabe reference koja ne povećava brojač referenci, ali se pretpostavlja da će objekat na koji se odnosi uvek postojati tokom korišćenja.

Prednosti:

  • Izbegava jake cikluse referenci, sprečavajući curenje memorije.
  • Nije opcionalan, stoga ne zahteva otpakivanje (unwrap).

Nedostaci:

  • Ako objekat na koji se odnosi unowned bude oslobođen, pristup toj referenci će izazvati grešku u toku izvršavanja.
  • Zahteva poverenje da je životni vek referenciranog objekta duži ili jednak životnom veku reference.

Primer upotrebe:

class Owner {
    var pet: Pet?
}

class Pet {
    unowned let owner: Owner
    init(owner: Owner) {
        self.owner = owner
    }
}

let owner = Owner()
owner.pet = Pet(owner: owner)

Ovde Pet drži unowned referencu na Owner da bi izbegao jake cikluse referenci.