Bindings..??

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

  • Hallo zusammen!
    Das hier ist mein erster Eintrag hier im Forum, also entschuldigt, wenn dieses Thema schon existiert.. :S
    Ich habe einige grundlegende Fragen zum Thema Binding. Ich bin nun schon seit Tagen an einer kleinen Flash-Card-App, ich wollte nun eine TableView mit meinem ModelObject mittels eines ArrayController verbinden. In meinem ModelObject befindet sich ein Array mit den einzelnen Wortlisten-Objekten, welche je eine Instanzvariable "Sprache" vom Typ NSString enthalten, diese will ich in einen Pop-Up-Button bringen.
    Ich werde nach zwei Tagen Studium der Dokumentation von Apple, des Buches von Klaus und Amin und diversen Internet-Tutorials IMMER noch nicht schlau, wie das ganze mit diesen Keys funktioniert.. Kann ich bei den Keys im Inspektor einfach die Namen der Instanzvariabeln im Objekt wählen oder den Namen der Accessor-Methode?? Wenn ich die einzelnen Werte irgendwo/irgendwie registrieren muss, kann mir bitte (!!) jemand sagen wo?
    Danke schon im Vorraus!
    Patrick
  • Die Auflage mim Klaus existiert noch?

    Also erst einmal sollten die Accessoren und die Ivar ja gleichnamig sind. Insofern stellt sich die Frage nicht. Aber generell: Jein, es gilt nichts von beiden und beides.

    Die Bindings holen die Werte mit KVC ab. KVC sucht zunächst nach Accessoren, dann aber auch nach gleichnamigen Ivars. Dazu gibt es dann noch jecke Dinge mit Underscores.

    Langer Rede kurzer Sinn: Nenne deine Accessoren so wie die Ivar.
    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"?
  • Ja, ich habe halt noch die 2. Auflage fürs OSX Tiger :D Hatte leider nie Zeit alles durchzumachen vom Buch, deshalb bin ich jetzt erst bei diesem Thema angelangt.

    Achso, dann habe ich das schon richtig gemacht. Ich muss also diese Keys nirgends im Code registieren oder so..? Es reicht wenn ich im Inspektor einfach die Namen der Accessoren/Ivar nehme..?
  • yaemm schrieb:

    Ja, ich habe halt noch die 2. Auflage fürs OSX Tiger :D Hatte leider nie Zeit alles durchzumachen vom Buch, deshalb bin ich jetzt erst bei diesem Thema angelangt.

    Achso, dann habe ich das schon richtig gemacht. Ich muss also diese Keys nirgends im Code registieren oder so..? Es reicht wenn ich im Inspektor einfach die Namen der Accessoren/Ivar nehme..?

    Jepp. Die sind in der Laufzeitumgebung registriert.
    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"?
  • Danke vielmals für den Buchausschnitt!
    Ok, jetzt weiss ich, was ich falsch gemacht habe: ich hatte nicht verstanden, dass man explizit die Methode set<key> aufrufen muss, um tatsächlich eine "Änderungsnachricht" an den Controller zu senden. Aber das kann ja doch wohl nicht wahr sein, oder? Gibt es nicht eine Möglichkeit, meine eigenen Methoden zu registrieren, die bei Aufruf eine Nachricht an den Controller senden bzw. wie sende ich manuell eine Nachricht an den Controller?
  • Das KVO, welches Bestandteil von Bindings ist, ist durch zur Laufzeit erzeugte Subklassen implementiert, die die entsprechenden Methode -key und -setkey: erwarten. Man kann auch manuelles KVO mit -willChangeValueForKey: und -didChangeValueForKey: betreiben. Aber wieso?

    Der in freier Wildbahn am häufigsten anzutreffende Grund dafür ist eigentlich nur Verbohrtheit. ;)
    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"?