KVC的簡單用法

KVC是給對象的成員變量賦值和拿到成員變量的值得另一種方式(也可通過調用set方法和get方法實現)

創建一個學生類,在頭文件中聲明幾個屬性

@property(nonatomic, copy) NSString * name;//姓名
@property(nonatomic, copy) NSString * sex;//性別
@property(nonatomic, assign) float face;//顏值

在回到ViewController.m中

通過key-path的方式給屬性賦值

// 創建一個學生對象stu
[stu setValue:@"老王" forKey:@"name"];
[stu setValue:@"男" forKey:@"sex"];
[stu setValue:@"99" forKey:@"face"]

注:通過KVC的方式去操作成員變量的時候,key值要與屬性名保持一致。否則會導致崩潰,但是這個崩潰是可以解決的
解決因為KVC的key值和屬性名不一致而造成的崩潰問題
a.賦值的時候key值和屬性不一樣:
重寫setValue:forUnderfineKey:方法
b.獲取值得時候,key值和屬性名不一樣:
重寫valueForUndefinedKey:方法

在學生類的.m文件中重寫

//1.重寫這個方法可以避免因為調用KVC的方法給成員變量賦值的時候,因為key寫錯而造成的崩潰問題
//2.將指定的key對應的值,賦給另外一個key對應的值(一般用在通過字典給屬性賦值的時候)
//參數1:給寫錯的key對應的成員變量賦的值
//參數2:寫錯的key值
- (void)setValue:(id)value forUndefinedKey:(NSString *)key{
}
//返回值:重新指定因為key錯誤而找不到返回值的方法的新的返回值(給valueForKey:方法返回一個新的返回值)
//參數:錯誤的key值
- (id)valueForUndefinedKey:(NSString *)key{
    return [NSString stringWithFormat:@"%@錯誤!!!", key];
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • KVC(Key-value coding)鍵值編碼,單看這個名字可能不太好理解。其實翻譯一下就很簡單了,就是指iO...
    黑暗中的孤影閱讀 49,923評論 74 441
  • KVC(Key-value coding)鍵值編碼,iOS的開發中,可以允許開發者通過Key名直接訪問對象的屬性,...
    CALayer_Sai閱讀 2,538評論 0 4
  • KVC(Key-value coding)鍵值編碼,單看這個名字可能不太好理解。其實翻譯一下就很簡單了,就是指iO...
    Fendouzhe閱讀 684評論 0 6
  • KVC簡單介紹 KVC(Key-value coding)鍵值編碼,就是指iOS的開發中,可以允許開發者通過Key...
    公子無禮閱讀 1,416評論 0 6
  • 轉自:http://www.lxweimin.com/p/dd355fbfa029kvc不經常使用,可能會忘記。轉載...
    BetterComingDay閱讀 679評論 0 1