Objective-C KVC索引值對

來源:互聯網
上載者:User

標籤:

KVC索引值對是後期在開發項目的時候會經常用到的,如果搞不清楚那個是key,那個是Value,那麼就會很吃虧的,我個人是在這方面吃了很多的虧,特別是在做通訊錄的時候. 也許剛開始接觸的不過是簡單的字典,或者是簡單的數組,但等到後期遇到字典裡包含數組,數組中還有數組,然後在套字典等等,那就SB了.

KVC:全拼是(Key-Value-Coding),索引值編碼. 是一種間接訪問執行個體變數的方法. key:鍵,用於標識執行個體變數. Value:值,是執行個體變數對應的值.下面介紹一下KVC使用的一些方法:

第一:修改值的方法 

1.setValue:forKey:

2.setValue:forKeyPath:

3.setValue:forUndefinedKey:

4.setValuesForKeysWithDicitonary:

 

第二:擷取值

1.valueForKey:

2.valueForKeyPath:

3.valueForUndefinedKey:

我們今天只說經常會使用的兩個方法:

1.setValue:forKey:

首先要在Student.h類中定義好兩個屬性

@property(nonatomic,copy)NSString *name;

@property(nonatomic,copy)NSString *sex;

在main函數中使用KVC

Student *stu = [[Student alloc]init]; 建立一個學生對象

[stu setValue:@"dandan" forKey:@"name"];使用KVC進行賦值

這裡的Value是你要設定的值,這個值是name的值,我把改成"dandan", 值有了,那麼要把這個值找個對應的屬性變數,forKey就是你在Student.h中定義的name. 這個key要與你屬性定義的一樣.

2.setValue: forUndefinedKey:

[stu setValue:@"120" forUndefinedKey:@"weight"];

首先需要強調的,我們在Student.h中沒有定義weight的屬性,所以是找不到的,按常理說你找不到的Key,編譯器應該是報錯的,但是使用了這個方法不會報錯,而且還會提示我們:沒有對應的執行個體變數,這個方法在後期做項目的時候會經常使用.記住!!!!!

3.setValuesForKeysWithDictionary:

現在有一個需求就是通過字典給對象賦值,那麼我們就得用上面的方法.首先我們要建立一個字典對象.

NSDictionary *dataDic = [[NSDictionary alloc]initWithObjectsAndKeys:@"Jack",@"name",@"male",@"sex",nil];

[stu setValuesForKeysWithDictionary:dataDic];

這樣我們就通過字典給stu對象賦值了.可能不能一下子理解,那麼就自己在工程多練習練習

Objective-C KVC索引值對

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.