Как сказал holex. Это зависит от вашего варианта использования. Нет лучшей практики. И есть исторически расширенные варианты для работы с представлениями.
Прежде всего:
Если представление добавляется в иерархию представления (например, addSubview ()), оно будет иметь прочные отношения.
Это хорошо, если вы не хотите работать с добавленным представлением. Для этого вам нужна ссылка.
Один из вариантов будет проходить через массив подпредставлений и искать ваше представление. В прошлом для более простых UI этого было бы достаточно, и именно поэтому он встроен. Каждое представление может иметь тег, и суперпредставление вашего представления может найти его.
func viewWithTag(_ tag: Int) -> UIView?
Другим способом было бы удерживать ссылку на представление вместо его просмотра. В этот момент в игру вступают торговые точки. Однако, если вы держите ссылку на объект, вы создаете по умолчанию прочные отношения. Это означает, что есть два места, где объект остается живым.
В те времена это было прекрасно. Приложения стали проще и если представление застряло, это было не так уж важно, поскольку сборщик мусора отбрасывает все объекты, когда приложение удаляется. (Хорошо, это абсолютно не очень хорошая практика)
Если у вас более статичный пользовательский интерфейс c, допустим, вы экспериментируете, это не имеет значения. Иметь слабые отношения - это нормально.
Кстати, Xcode спросит вас, хотите ли вы сильную или слабую ссылку, и использует ваше решение по умолчанию. Возможно, вы изменили его один раз и привыкли к новому «по умолчанию»
Если у вас более динамичный c пользовательский интерфейс, посмотрите, как работает UITableView , UITableViewCells - это представления, и вы обычно не держите ссылки на них, чтобы изменить их.
Но лучшая рекомендация для торговых точек: спросите себя, действительно ли вам это нужно. Часто код, который каким-то образом изменяет UIView, должен быть с собственным классом views, вместо того, чтобы хранить весь код в одном месте. (MVC не означает, что весь код входит в UIViewController)