Wie so oft der Fall, es hängt. Die Verwendung der Ansichtshierarchie, Benachrichtigungen und Delegierung sind drei verschiedene Möglichkeiten, mit denen Objekte miteinander kommunizieren können. Um zu entscheiden, welche von diesen (wenn überhaupt) am geeignetsten ist, muss darüber nachgedacht werden, wie die fraglichen Objekte zueinander in Beziehung stehen.
Benachrichtigungen bieten eine sehr lockere (fast Null) Kopplung zwischen Objekten. Sie stellen auch eine Eins-zu-viele-Kommunikation bereit - Sie veröffentlichen eine Benachrichtigung und jedes Objekt, das auf diese Benachrichtigung wartet, erhält die Nachricht. Aber Benachrichtigungen sind nicht immer angemessen. Die Kommunikation erfolgt hauptsächlich nur in einer Richtung, und der Missbrauch des Benachrichtigungsmechanismus kann zu Leistungsproblemen führen.
Delegierung gibt Ihnen eine Möglichkeit, das Verhalten eines Objekts anzupassen. Das offensichtlichste Beispiel ist der Anwendungsdelegat. Die meisten iOS-Anwendungen basieren auf derselben Klasse: UIApplication. UIApplication ist für jede App genau das gleiche, obwohl jede App ihr eigenes Ding macht. Das Anwendungsobjekt verwendet einen Delegaten, um die Anpassung bereitzustellen, die der Anwendung ihr eindeutiges Verhalten verleiht.
Die Ansichtshierarchie ist eine andere Möglichkeit, dass (einige) Objekte miteinander verbunden sind. Wenn das von Ihnen implementierte Verhalten a) Teil einer Ansicht und b) abhängig von der Beziehung dieser Ansicht zu anderen Ansichten ist, kann es sinnvoll sein, die Eigenschaften superview
und subviews
zu verwenden.
Also, welche Art von Funktionalität versuchen Sie zu implementieren?