Key-value coding is basically a mechanism to indirectly access an object's properties, rather than explicitly getting and setting those properties via instance variables. With KVC, we use strings as properties keys, which act as an identifier. It is used by passing a "key", which is a string to get or set the property related to that key. For example, take a look at the following code sample:
@interface DogClass @property NSString *dog_name; @property NSInteger number_legs; @end DogClass *mydog = [[DogClass alloc] init]; NSString *string = [myDog valueForKey:@"dog_name"]; [mydog setValue:@4 forKey:@"number_legs"];
In the preceding code, we created DogClass
with two properties of NSString
and NSInteger
. Then, we used valueForKey
and setValue
to get the value of dog_name
and number_legs
respectively using key-value coding.
If this sounds familiar to you, you may recognize the syntactical similarity when using NSDictionary.
There is another sample code, which you...