Object-c KVC的使用和舉例

haibo wang發表於2014-04-09

     如果我們的物件需要使用KVC,必須符合object-c的非正式協議NSKeyValueCoding.我們可以簡單的來理解KVC,即所有符合KVC機制的物件都看成一個字典(NSDictionary),物件裡面的成員量都是以鍵值配對的形式存放的,當我們需要為物件存值時,使用“setValue: froKey:”的方法;而當取物件時,使用valueForKey:的方法。

     對於物件中成員量的鍵值配對,所謂的“鍵”其實是NSString型別的字串,他們所對應的值也都是一個id型別的物件。

     定義一個足球運動員類

@interface footballer : NSObject

@property (nonatomic,retain) NSString *name;
//@property (nonatomic,retain) NSMutableArray *members;
@end

@implementation footballer
@synthesize name;
//@synthesize members;

 注:程式中通過@synthesize指令告訴編譯器在編譯期間產生getter /setter方法

  對於足球運動員的物件,我們如果要知道他的名字,就可以將name作為鍵來取值,程式碼如下:

   footballer *aPlayer=[[footballer alloc]init];
   aPlayer.name=@"Rual";
//footballer *bPlayer=[[footballer alloc]init];
//[bplayer.members addObject:aPlayer.name]; NSLog(@"name: %@",[aPlayer valueForKey:@"name"]);

 

 

相關文章