Key-Value-Coding ist ein elementares und grundlegendes Design-Pattern von Cocoa:
// ohne key-value coding:
NSString* myString = [myObject name];
[myObject setName:@"Hallo Welt"];
// mit key-value coding:
NSString* myString = [myObject valueForKey:@"name"];
[myObject setValue:@"Hallo Welt" forKey:@"name"];
// collections benutzen Key-Value-Coding
NSNumber* myNumber = [myDict valueForKey:@"myNumber"];
[myDict setValue:[NSNumber numberWithInt:5] forKey:@"myNumber"];
Vorteile von Key-Value-Coding
- Keine benannten Selektoren (nur valueForKey: und setValue:forKey:)
- Sämtliche Cocoa-Collections (NSArray, NSDictionary...) benutzen KVC
- Bindings (nicht verfügbar in iPhone OS <= 3.0) funktionieren mit KVC
- Ideal für dynamisch synthetisierte Methoden
Links
Diese Seite ist Teil des Werkmoduls iOS Development von Michael Markert für Interface Design / Fakultät Medien an der Bauhaus-Universität Weimar.