@IBOutlet кара Interface Builder да разпознае изхода. private гарантира, че изходът няма достъп извън текущия клас. слаб се използва, защото в повечето ситуации собственикът на изхода не е същият като собственика на изгледа. Например контролерът на изглед не притежава някакъв етикет - изгледът на контролера на изглед притежава.
Трябва ли IBOoutlets да са слаби?
Официалният отговор от Apple е, че IBOutlets трябва да са силни. Единственият случай, когато IBOoutlet трябва да е слаб, е за да се избегне цикъл на задържане. Силният референтен цикъл може да доведе до течове на памет и сривове на приложението.
Какво е IBOutlet Swift?
Квалификаторът на типа IBOutlet е таг, приложен към декларация за свойство, така че приложението Interface Builder да може да разпознае свойството като изход и да синхронизира дисплея и връзката му с Xcode. Изходът е деклариран като слаб референтен (слаб) за предотвратяване на силни референтни цикли.
Какво е слабата препратка в Swift?
Слаби препратки. Слаба препратка е препратка, която не поддържа силно задържане на екземпляра, към който се отнася, и така не спира ARC да изхвърли препоръчания екземпляр. Това поведение предотвратява препратката да стане част от силен референтен цикъл.
Каква е разликата между слаб и силен в Swift?
A strong препратка означава, че искате да "притежавате" обекта, който препращате с това свойство/променлива. За разлика от тях, със слабапрепратка означавате, че не искате да имате контрол върху живота на обекта.