Obj-C中的KVC

-setValue:forKey:和 -valueForKey  

[car setValue: @「x」 forKey: @「name」];
[car setValue: [NSNumber numberWithFloat:205.4 ] forKey: @「number」]; //先進行包裝
-setValue:forKey:首先查找以鍵key 或者 isKey命名的setter方法。若是不存在setter方法,就在類中查找名爲_key 或 key 的實例變量,而後爲它賦值。

NSString *name = [car valueForKey:@「name」];
NSLog(@「Name is %@」, name);
-valueForKey 首先查找以鍵key 或者 isKey命名的getter方法。 若是不存在getter方法,則在對象內部
查找名爲_key 或 key 的實例變量。
-valueForKey 在Obj-C運行時使用元數據打開對象並進入其中查找須要的信息。經過使用KVC,能夠獲取不存在getter方法的對象值,無需經過對象指針直接訪問實例變量。

鍵路徑
[car setValue: [NSNumber numberWithInt: 155]
   forKeyPath: @「engine.horsepower」];
NSLog(@「horsepower is %@」, [car valueForKeyPath:@「engine.horsepower」]);

若是向NSArray請求一個鍵值,它實際上會查詢數組中的每一個對像來查找這個鍵值,而後將查詢結果打包到另外一個數組中返回。
相關文章
相關標籤/搜索