Varför är iboutlet svag?

Varför är iboutlet svag?
Varför är iboutlet svag?
Anonim

@IBoutlet får Interface Builder att känna igen uttaget. privat säkerställer att uttaget inte nås utanför den aktuella klassen. svag används eftersom ägaren till uttaget i de flesta situationer inte är densamma som ägaren till vyn. Till exempel, en vykontroller äger inte someLabel – det gör vykontrollantens vy.

Behöver IBOutlets vara svaga?

Det officiella svaret från Apple är att IBOutlets ska vara starka. Det enda fallet när en IBOutlet skulle vara svag är för att undvika en kvarhållningscykel. En stark referenscykel kan resultera i minnesläckor och appkrascher.

Vad är IBOutlet Swift?

Typkvalificeraren IBOutlet är en tagg som appliceras på en egenskapsdeklaration så att Interface Builder-applikationen kan känna igen egenskapen som ett uttag och synkronisera visningen och anslutningen av den med Xcode. Ett uttag deklareras som en svag referens (svag) för att förhindra starka referenscykler.

Vad är svag referens i Swift?

Svaga referenser. En svag referens är en referens som inte håller ett starkt grepp om instansen den refererar till, och hindrar därför inte ARC från att göra sig av med den refererade instansen. Detta beteende förhindrar referensen från att bli en del av en stark referenscykel.

Vad är skillnaden mellan svag och stark i Swift?

A strong referens betyder att du vill "äga" objektet du refererar till med denna egenskap/variabel. Däremot med en svagreferens du betyder att du inte vill ha kontroll över objektets livstid.