Защо iboutlet е слаб?

Защо iboutlet е слаб?
Защо iboutlet е слаб?
Anonim

@IBOutlet кара Interface Builder да разпознае изхода. private гарантира, че изходът няма достъп извън текущия клас. слаб се използва, защото в повечето ситуации собственикът на изхода не е същият като собственика на изгледа. Например контролерът на изглед не притежава някакъв етикет - изгледът на контролера на изглед притежава.

Трябва ли IBOoutlets да са слаби?

Официалният отговор от Apple е, че IBOutlets трябва да са силни. Единственият случай, когато IBOoutlet трябва да е слаб, е за да се избегне цикъл на задържане. Силният референтен цикъл може да доведе до течове на памет и сривове на приложението.

Какво е IBOutlet Swift?

Квалификаторът на типа IBOutlet е таг, приложен към декларация за свойство, така че приложението Interface Builder да може да разпознае свойството като изход и да синхронизира дисплея и връзката му с Xcode. Изходът е деклариран като слаб референтен (слаб) за предотвратяване на силни референтни цикли.

Какво е слабата препратка в Swift?

Слаби препратки. Слаба препратка е препратка, която не поддържа силно задържане на екземпляра, към който се отнася, и така не спира ARC да изхвърли препоръчания екземпляр. Това поведение предотвратява препратката да стане част от силен референтен цикъл.

Каква е разликата между слаб и силен в Swift?

A strong препратка означава, че искате да "притежавате" обекта, който препращате с това свойство/променлива. За разлика от тях, със слабапрепратка означавате, че не искате да имате контрол върху живота на обекта.

Препоръчано: