Pull to refresh

Comments 10

Ой как много воды о том, что такое инкапсуляция (что аутлеты не должны торчать наружу)… И, кстати говоря, это зависит от применяемой архитектуры, иногда нужно как раз наоборот. Но если «по-простому» — то да, в большинстве случаев аутлеты, если уж вы их используете, делаем приватными, чтобы извне был доступен минимум информации. Все, вся статья в двух предложениях.
Во многих проектах, с которыми я сталкивался, аутлеты как раз «торчали наружу», помимо этого Xcode при создании аутлетов не предлагает быстро добавить private, поэтому я думаю, что пояснения будут не лишними, особенно для начинающих.

image
В опросе нет вариантов без «private», но с «weak».
возможно, действительно имело смысл добавить еще несколько вариантов в том числе варианты без private — просто получалось очень массивно. а вы за вариант без private?
После прочтения Вашей статьи засомневался, но доселе использовал просто «weak var».
А можете рассказать поподробнее?

Типичная ситуация, захотел вдруг кодом изъять вьюшку, а потом вставить куда-либо снова.
Разработчик пишет self.myView.removeFromSuperview(), и в этот момент вьюшка деаллоцируется, так ссылка держалась только иерархией вью, а не самим контроллером из-за weak, и далее так как у нас еще и IUO, то при обращунии без ? будет креш.
Мало уже кто помнит, зачем давным давно писали weak в аутлетах ))).

Я использую всегда (ну кроме отдельных случаев):
@IBOutlet private var someLabel: UILabel?

с тех пор, как начал писать на свифте.
Про weak уже сказали выше — он не нужен.
Но почему так много людей делают аутлеты не опшионалами?
Ведь в теории, при передаче в контроллер какого-то параметра (из segue например и особенно когда они не приватны) аутлеты могут быть ещё не привязаны и не доступны?
Что это? Авось и так прокатит?
Sign up to leave a comment.

Articles