MVC: Werte "beschreiben"

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Original von Tom9811
    Und wieder hat SAAAAAAAATAAAAAAAAAAAAAAAAN eine Seele geschnappt.


    Ach tom :) um ehrlich zu sein habe ich nach dieser Diskussion hier nochmals über meine Aussagen nachgedacht. So langsam zweifle ich an meinen totally rich models ein wenig.

    Naja ich werde mir das nochmal bei Gelegenheit anhand konkreter Beispiele vor Augen führen.
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Ich hatte mich schon etwas über dein Schweigen gewundert …
    Na, um so besser. So hast du dir folgende Jünger, obwohl du nicht mehr überzeugt bist. Was will man mehr?

    Im Urheberrecht nennt man das übrigens gewandelte Überzeugung.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ich muss das erstmal alles an echten Beispielen ausprobieren bevor ich meine Meinung anschließend überarbeiten werde oder auch nicht. Mich hat jetzt nicht so sehr die Frage "Lokalisierung teilweise im Model oder nicht im Model" zum nachdenken gebracht sondern die Art und Weise, wie ich meine Views programmiere.

    Da meine eigenen Models so schlau waren und viel (zu viel) Aufgaben dem Controller abgenommen haben wurde dieser überflüssig.

    Angenommen ich habe ein View, welches eine Person repräsentiert. Dann habe ich dies immer so gemacht:

    Quellcode

    1. [personView bind:@"person" toObject:personenArrayController forKeyPath:@selection.self" options:nil];


    Das "personView" hat sich dann bei der Person, die es durch seine Accessoren bekommt automatisch bei den entsprechenden Attributen der Person als Observer angemeldet und wieder abgemeldet. Hat der Nutzer dann das personView dazu gebracht den Vornamen der aktuell angezeigten Person zu ändern, so wurde diese Änderung direkt durch das View am Personenobjekt durchgeführt.

    Quellcode

    1. self.person.firstName = newValue;


    Dadurch, dass das Personview seine eigene Person - also die wichtigen Attribute konnte es sich auch neu Zeichnen, da die Obervierung zuschlägt.

    Das View übernahm mit Hilfe des Models Aufgaben des Controllers. Doof.

    Mein neuer Plan, den ich noch nicht getestet habe sieht wie folgt aus:

    Das View bietet nicht nur ein Binding (person) an, sondern für jedes Attribut, welches angezeigt werden soll ein Binding. Wie es dann mit der Synchronisation aussieht muss ich noch testen. Was ich an der Lösung doof finde ist die Tatsache, dass ich praktisch im View das Model nochmals nachprogrammiere. Theoretisch könnte man das View ein privates personen-Objekt verwalten lassen und das View hat nur pseudo getter und setter. Ja - mal schaun.

    Muss mir das komplette View/Binding/Controller/Editing Gedöns nochmals anschauen.
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Du kannst vielleicht auch daran denken, dem View zwar nur ein Binding (auf deine Person-Instanz) zu geben und dann noch einen Satz von Keys. Mich stören nämlich diese mehrfach-Bindings, die dann doch alle an einer Instanz hängen (müssen). Siehe Tableview!

    Damit habe ich auch schon gut Erfahrungen gemacht und kommt auch in der dritten Auflage so.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?