close
NSObject提供兩個method:
- (id)valueForKey:(NSString *)attrName - (void)setValue:(id)newValue forKey:(NSString *)attrName
我們可以透過這兩個method存取物件中的變數,它們會優先使用變數的accessor method,當accessor method不存在時,才直接存取變數。假設有隻貓:
@interface Cat : NSObject { NSString* name; } - (NSString*)name; - (void)setName:(NSString*)aName; @end
我們可以這麼用:
[cat setValue:@"Cocoa" forKey:@"name"]; NSString* catName = [cat valudForKey:@"name"];
傳給setValue的值如果是nil,會呼叫NSObject的
- (void)setNilValueForKey:(NSString *)s
setNilValueForKey預設會產生exception,我們可以在子類別修改其行為。
全站熱搜