Frage

Ich versuche, mit gutem Design zu kommen, während Shop Kit implementieren.

Der Versuch, MVC Konvention zu folgen, ich habe folgende

Modell: Shop Observer Ausblick: Einige Ansicht, die UI (Produktauswahl, usw.) wird angezeigt Controller: My-View-Controller

Über meinen View Controller instanziiert einen Laden Observer Klasse für Produktanfrage und die Benutzeroberfläche aktualisieren. Ist dies der richtige Weg, dies zu tun?

Ich habe auch Schwierigkeiten, wo die Bestimmung der Produktanfrage Anrufe zu tätigen, da es ASYNC ist. Und wie ich mich über die Benutzeroberfläche nach dem Produkt Aktualisierung Info geholt (ich nenne SetNeedsDisplay)

Danke schön

War es hilfreich?

Lösung

Sie sollten in Delegierten suchen. Sie können Dinge verursachen, ohne passieren MVC Brechen eines Delegaten-Protokoll, das die handelnden Objekt Konform durch die Definition. Sie können dann eine delegierte Methode durch einen Aufruf der Methode in dem Delegat-Protokoll definiert nennen. Der Effekt ist eine Art, wie ein Zeiger auf das Objekt mit und direkt eine seiner Methoden aufrufen, aber es ist nicht das gleiche - die Objekte noch entkoppelt sind und durch das Protokoll definiert, definieren Sie nur, was Sie so tun können, dass Sie am Ende nicht mit Klassen hoffnungslos miteinander verflochten.

Das Ziel der Aktion verursacht - nennen es A - definiert einen Delegaten Eigenschaft. Es wird zu einem Gegenstand, B gesetzt, an die Delegaten Protokoll entspricht. B muss der Delegierte Spezifizierer in seinem Header enthalten, um anzuzeigen, dass es mit dem Protokoll entspricht, und es muss jede Methode zur Implementierung in das Protokoll definiert (mit Ausnahme der als optional definiert). A kann dann rufen Methoden in B, solange das Protokoll sich aussetzt. Sie müssen nicht mit A mit einem Zeiger auf B am Ende und b einen Zeiger auf A. unter Das ist genau das, wie ein UITableView funktioniert, haben Sie wahrscheinlich die Delegierten bereits verwendet haben.

In Ihrem Fall sieht aus wie der Controller einen Speicher Beobachter erstellen. Es wird auch Delegatmethoden für Notifikationen implementieren das Modell an die Steuerung zurückschicken muss. Der Delegierte des Modells ist mit dem Controller eingestellt und kann die Steuerung von Änderungen an dem Modell benachrichtigt werden (die es hat richtig Zugang zu), um Update UI.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top