Как это часто бывает, это зависит . Использование иерархии представлений, уведомлений и делегирования - это три различных способа взаимодействия объектов друг с другом. Чтобы решить, какой из них (если таковой имеется) является наиболее подходящим, необходимо подумать о том, как рассматриваемые объекты связаны друг с другом.
Уведомления обеспечивают очень слабую (почти нулевую) связь между объектами. Они также обеспечивают связь «один ко многим» - вы публикуете уведомление, и каждый объект, который прослушивает это уведомление, получит сообщение. Но уведомления не всегда уместны; связь в основном только в одном направлении, и злоупотребление механизмом уведомления может привести к проблемам с производительностью.
Делегирование дает вам возможность настроить поведение объекта. Наиболее очевидным примером является делегат приложения. Большинство приложений для iOS основаны на одном классе: UIApplication. UIApplication одинаково для каждого приложения, даже если каждое приложение выполняет свою функцию. Объект приложения использует делегат для обеспечения настройки, которая придает приложению уникальное поведение.
Иерархия представлений - это еще один способ соединения (некоторых) объектов друг с другом. Если реализуемое вами поведение является а) частью представления и б) зависит от отношения этого представления с другими представлениями, то может иметь смысл использовать свойства superview
и subviews
.
Итак, какую функциональность вы пытаетесь реализовать?