@IBOutlet заставляет Interface Builder распознавать выход. private гарантирует, что выход не будет доступен за пределами текущего класса. weak используется потому, что в большинстве ситуаций владелец выхода не совпадает с владельцем представления. Например, контроллеру представления не принадлежит someLabel, а принадлежит представлению контроллера представления.
Должен ли IBOutlets быть слабым?
Официальный ответ Apple заключается в том, что IBOutlets должен быть сильным. Единственный случай, когда IBOutlet должен быть слабым, это, чтобы избежать цикла удержания. Сильный цикл ссылок может привести к утечке памяти и сбоям приложения.
Что такое IBOutlet Swift?
Квалификатор типа IBOutlet - это тег, применяемый к объявлению свойства, чтобы приложение Interface Builder могло распознать свойство как выход и синхронизировать его отображение и соединение с Xcode.. Выход объявляется как слабая ссылка (weak), чтобы предотвратить циклы сильных ссылок.
Что такое слабая ссылка в Swift?
Слабые ссылки. Слабая ссылка - это ссылка, которая не удерживает сильное удержание экземпляра, на который ссылается, и поэтому не мешает ARC избавиться от экземпляра, на который ссылается. Такое поведение предотвращает превращение ссылки в цикл сильных ссылок.
В чем разница между слабым и сильным в Swift?
Ссылка
A strong означает, что вы хотите «владеть» объектом, на который вы ссылаетесь с этим свойством/переменной. Напротив, при слабомссылка означает, что вы не хотите контролировать время жизни объекта.