close

from http://forth.pixnet.net/blog/post/25397785-key-value-coding

 

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,我們可以在子類別修改其行為。

arrow
arrow
    全站熱搜

    zer931 發表在 痞客邦 留言(0) 人氣()