Dlaczego iboutlet jest słaby?

Dlaczego iboutlet jest słaby?
Dlaczego iboutlet jest słaby?
Anonim

@IBOutlet umożliwia konstruktorowi interfejsu rozpoznanie gniazdka. private zapewnia, że dostęp do gniazdka nie jest możliwy poza bieżącą klasą. Słaby jest używany, ponieważ w większości sytuacji właściciel gniazdka nie jest tym samym, co właściciel widoku. Na przykład kontroler widoku nie jest właścicielem jakiejś etykiety - posiada on widok kontrolera widoku.

Czy IBOutlets muszą być słabe?

Oficjalna odpowiedź Apple brzmi, że IBOutlets powinien być silny. Jedynym przypadkiem, w którym IBOutlet powinien być słaby, jest unikanie cyklu przechowywania. Silny cykl referencyjny może spowodować wycieki pamięci i awarie aplikacji.

Co to jest IBOutlet Swift?

Kwalifikator typu IBOutlet jest znacznikiem zastosowanym do deklaracji właściwości, dzięki czemu aplikacja Interface Builder może rozpoznać właściwość jako gniazdko i zsynchronizować jej wyświetlanie i połączenie z Xcode. Wyjście jest deklarowane jako słabe odniesienie (słabe), aby zapobiec silnym cyklom odniesienia.

Co to jest słabe odniesienie w Swift?

Słabe referencje. Słabe odwołanie to odwołanie, które nie utrzymuje silnego wpływu na instancję, do której się odwołuje, a więc nie powstrzymuje ARC przed usunięciem instancji, do której się odwołuje. To zachowanie zapobiega temu, aby odwołanie stało się częścią silnego cyklu odniesienia.

Jaka jest różnica między słabym a silnym w Swift?

A strong odwołanie oznacza, że chcesz „być właścicielem” obiektu, do którego się odwołujesz, za pomocą tej właściwości/zmiennej. W przeciwieństwie do słabejodniesienie oznacza, że nie chcesz mieć kontroli nad czasem życia obiektu.