#025 Cheddar: Key Value Observing
(31:00 Minuten)
Mit dieser "Schlüssel-Wert-Überwachung" kann man einige sehr interessante Dinge machen. Man lässt einen Schlüssel (Key) beobachten (Observing) und wenn sich dessen Wert (Value) ändert, wird eine Methode aufgerufen, in der man auf die Änderung des Werts reagieren kann. Das Praktische daran ist, dass KVO auch über Objektgrenzen hinaus funktioniert und somit z.B. Datenänderungen in einem Model
'automatisch' durch den Controller erkannt werden können.
Im OSXEntwicklerforum ist darüber hinaus noch ein sehr schöner, umfassender Artikel über Key Value Observing zu finden, wir verzichten daher mal auf einen eigenen Artikel (Link).
Ihr bekommt den Quellcode zu dieser Folge in unserem SVN-Repository direkt aus Xcode heraus unter "releases/episode_025", oder am Terminal mit:
svn checkout https://cheddar1.svn.sourceforge.net/svnroot/cheddar1/releases/episode_025
Kommentar hinzufügen
10. ingo am 14. Jan 2010, 14:30 Uhr
@ramsch:
Das ist wohl korrekt. Das ist auch ein Weg. Allerdings konnten wir auf diese Weise eine neue Technik einführen und hatten weniger zu tippen. :)
Auf dem von Dir vorgeschlagenen Weg muss die ganze Retain- und Release-Funktionalität selbst implementieren, unter Umständen auch Thread Safe; wir haben ja noch einiges vor... :-) Das macht der Setter alles automatisch. Tortz allem wäre das natürlich auch ein Weg gewesen.
@ramsch:
Das ist wohl korrekt. Das ist auch ein Weg. Allerdings konnten wir auf diese Weise eine neue Technik einführen und hatten weniger zu tippen. :)
Auf dem von Dir vorgeschlagenen Weg muss die ganze Retain- und Release-Funktionalität selbst implementieren, unter Umständen auch Thread Safe; wir haben ja noch einiges vor... :-) Das macht der Setter alles automatisch. Tortz allem wäre das natürlich auch ein Weg gewesen.
9. @ramsch am 14. Jan 2010, 14:19 Uhr
Was haltet ihr davon, anstatt sich selber zu observen den synthetisierten Setter durch einen eigenen zu ersetzten:
- (void)setSyncItem {
// Set value ...
[self updateAllControls];
}
Ich sehe erstmal keinen Nachteil.
Liebe Grüsse, ramsch
Was haltet ihr davon, anstatt sich selber zu observen den synthetisierten Setter durch einen eigenen zu ersetzten:
- (void)setSyncItem {
// Set value ...
[self updateAllControls];
}
Ich sehe erstmal keinen Nachteil.
Liebe Grüsse, ramsch
8. fbogner am 12. Jan 2010, 21:05 Uhr
Hallo,
Wollte nur kurz vorbeischauen und sagen: Toller Podcast! Weiter so!
Hallo,
Wollte nur kurz vorbeischauen und sagen: Toller Podcast! Weiter so!
7. Vergissberlin am 11. Jan 2010, 23:12 Uhr
Booaaaaaaarrrrr. ICH LIEBE ES!
Man merkt, dass ihr euch wirklich vorbereitet.
Respekt und weiter so!
Freu mich schon auf die iPhone-App zu Cheddar!
Äh.. Berlin?
Booaaaaaaarrrrr. ICH LIEBE ES!
Man merkt, dass ihr euch wirklich vorbereitet.
Respekt und weiter so!
Freu mich schon auf die iPhone-App zu Cheddar!
Äh.. Berlin?
6. Yohane am 11. Jan 2010, 17:09 Uhr
Hallo Peter,
Danke für Deine Antwort. Ich habe einen Apple Account. Ich glaube mein Problem liegt einfach darin, dass ich die Logik mit den Schlüsselbunden und Zertifikaten nicht ganz verstehe. :( Also manchmal fragt mich Safarie danach, manchmal nicht, obwohl ich immer "immer vertrauen" auswähle.
Gruß Yohane
Hallo Peter,
Danke für Deine Antwort. Ich habe einen Apple Account. Ich glaube mein Problem liegt einfach darin, dass ich die Logik mit den Schlüsselbunden und Zertifikaten nicht ganz verstehe. :( Also manchmal fragt mich Safarie danach, manchmal nicht, obwohl ich immer "immer vertrauen" auswähle.
Gruß Yohane
5. Victor am 10. Jan 2010, 17:06 Uhr
Hallo Peter und Ingo,
könntet Ihr eine Lektion darüber geben, wie man eine Wörterbuch-Applikation programmiert?
Vielen Dank!
Victor
Hallo Peter und Ingo,
könntet Ihr eine Lektion darüber geben, wie man eine Wörterbuch-Applikation programmiert?
Vielen Dank!
Victor
4. peter am 10. Jan 2010, 16:08 Uhr
@Yohane:
Man benötigt ja einen (kostenfreien) Account, um Xcode von den Developer-Seiten laden zu können. Und die Zugangsdaten von diesem Account musst Du auch eintragen, wenn Du die Doku laden/einsehen willst. Der Login wird aber auch im Schlüsselbund gespeichert, sodass Du das nur einmal eingeben musst.
Hab das grad erst alles hinter mit, als ich den neuen iMac eingerichtet habe - war also bei mir nicht anders.
Peter
@Yohane:
Man benötigt ja einen (kostenfreien) Account, um Xcode von den Developer-Seiten laden zu können. Und die Zugangsdaten von diesem Account musst Du auch eintragen, wenn Du die Doku laden/einsehen willst. Der Login wird aber auch im Schlüsselbund gespeichert, sodass Du das nur einmal eingeben musst.
Hab das grad erst alles hinter mit, als ich den neuen iMac eingerichtet habe - war also bei mir nicht anders.
Peter
3. Yohane am 10. Jan 2010, 15:50 Uhr
Hallo Peter und Ingo,
vielen Dank für die neue Folge. Jetzt habe ich doch noch ein Problem mit xcode. Wenn ich die Hilfe öffnen möchte, soll ich mich immer im "Mac Dev Center" anmelden. Leider funktioniert der Log-in Button dort für mich nicht. Ich vermute mal, dass das irgendwas mit den Zertifikat zu tun hat die mir Safari manchmal bei Log-in's anzeigt. Könnt ihr mir nochmal einen Rat geben?
Gruß Yohane
Hallo Peter und Ingo,
vielen Dank für die neue Folge. Jetzt habe ich doch noch ein Problem mit xcode. Wenn ich die Hilfe öffnen möchte, soll ich mich immer im "Mac Dev Center" anmelden. Leider funktioniert der Log-in Button dort für mich nicht. Ich vermute mal, dass das irgendwas mit den Zertifikat zu tun hat die mir Safari manchmal bei Log-in's anzeigt. Könnt ihr mir nochmal einen Rat geben?
Gruß Yohane
2. ingo am 10. Jan 2010, 12:31 Uhr
Jepp, das ist einer von mehreren bekannten Bugs.
Wird in der Aufräumfolge (27) behoben ;)
Jepp, das ist einer von mehreren bekannten Bugs.
Wird in der Aufräumfolge (27) behoben ;)
1. Jan-Philipp am 10. Jan 2010, 12:11 Uhr
ICh hab nen bug gefunden. Wenn man ein item hinzufügt und es wieder wegnimmt dann verschwindet zwar der kasten zum anwählen aber der Name ist noch da und den kann man auch noch ändern. Wäre cool wenn ihr den Bug beheben könntet.
ICh hab nen bug gefunden. Wenn man ein item hinzufügt und es wieder wegnimmt dann verschwindet zwar der kasten zum anwählen aber der Name ist noch da und den kann man auch noch ändern. Wäre cool wenn ihr den Bug beheben könntet.
http://www.mac-talk.eu/entwickler/71-videotutorials-zu-objective-c.html