Hvorfor iboutlet er svak?

Hvorfor iboutlet er svak?
Hvorfor iboutlet er svak?
Anonim

@IBoutlet får Interface Builder til å gjenkjenne stikkontakten. private sikrer at stikkontakten ikke er tilgjengelig utenfor gjeldende klasse. svak brukes fordi eieren av uttaket i de fleste situasjoner ikke er den samme som eieren av visningen. For eksempel eier ikke en visningskontroller someLabel – visningskontrollerens visning gjør det.

Må IBOutlets være svake?

Det offisielle svaret fra Apple er at IBOutlets skal være sterke. Det eneste tilfellet når en IBOutlet skal være svak er for å unngå en retention-syklus. En sterk referansesyklus kan føre til minnelekkasjer og appkrasj.

Hva er IBOutlet Swift?

Typekvalifikatoren IBOutlet er en tag brukt på en eiendomserklæring slik at Interface Builder-applikasjonen kan gjenkjenne egenskapen som et uttak og synkronisere visningen og tilkoblingen av den med Xcode. Et uttak er erklært som en svak referanse (svak) for å forhindre sterke referansesykluser.

Hva er svak referanse i Swift?

Svake referanser. En svak referanse er en referanse som ikke holder et sterkt tak på forekomsten den refererer til, og hindrer derfor ikke ARC i å avhende den refererte forekomsten. Denne virkemåten forhindrer at referansen blir en del av en sterk referansesyklus.

Hva er forskjellen mellom svak og sterk i Swift?

A strong referanse betyr at du ønsker å "eie" objektet du refererer til med denne egenskapen/variabelen. I kontrast, med en svakreferanse du betyr at du ikke vil ha kontroll over objektets levetid.