#025 Cheddar: Key Value Observing (31:00 Minuten)

#025 Cheddar: Key Value Observing
In der letzten Folge haben wir das TabView grundsätzlich mit Funktionalität versehen. Wirklich sauber funktioniert es aber dann doch noch nicht. Daher kümmern wir uns in dieser Folge um das Beheben einiger Fehler und führen Key Value Observing (KVO) ein.

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
Mehr Infos zum Thema in den Artikeln Subversion: Quellcodes zu den Episoden direkt in Xcode und Subversion und Xcode!
Trackbacks:
http://www.mac-talk.eu/entwickler/71-videotutorials-zu-objective-c.html
10 Kommentare | Permalink | Trackback-Info | Film in HD ansehen!

Anzeige / Partnerlink

Kommentar hinzufügen

 
Name:
Email (optional):
Text:
Sicherheitscode:
Bitte geben Sie hier die unten abgebildete 5-stellige Zahl aus dem Bild ein!
Um die 1 besser von der 7 unterscheiden zu können, hat die 1 unten immer einen waagerechten Strich.

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.

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

8. fbogner am 12. Jan 2010, 21:05 Uhr

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?

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

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

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

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

2. ingo am 10. Jan 2010, 12:31 Uhr

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.