This informal protocol provides a way for clients to access a
class's instance variables (or other properties)
without having to explicitly rely on accessor methods.
NSKeyValueCoding provides indirect access to an
object's instance variables through the use of
strings or keys. The two most commonly used methods in the protocol
are takeValue:forKey: and
valueForKey:, which are used to set and get the
value of an instance variable, respectively. This protocol, and the
associated NSScriptKeyValueCoding protocol, both
form the basis of scripting in Cocoa. Chapter 2
goes into more detail about this protocol.
@interface NSObject (NSKeyValueCoding)
|
// Class Methods |
+ (BOOL)accessInstanceVariablesDirectly;
|
+ (BOOL)useStoredAccessor;
|
// Instance Methods |
- (id)valueForKey:(NSString *)key;
|
- (void)takeValue:(id)value forKey:(NSString *)key;
|
- (id)storedValueForKey:(NSString *)key;
|
- (void)takeStoredValue:(id)value forKey:(NSString *)key;
|
- (id)valueForKeyPath:(NSString *)key;
|
- (void)takeValue:(id)value forKeyPath:(NSString *)key;
|
- (NSDictionary *)valuesForKeys:(NSArray *)keys;
|
- (void)takeValuesFromDictionary:(NSDictionary *)dictionary;
|
- (id)handleQueryWithUnboundKey:(NSString *)key;
|
- (void)handleTakeValue:(id)value forUnboundKey:(NSString *)key;
|
- (void)unableToSetNilForKey:(NSString *)key;
|
@end
|