欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS 中KVC的使用方法實(shí)例詳解

 更新時(shí)間:2017年09月03日 10:43:27   投稿:lqh  
這篇文章主要介紹了IOS 中KVC的使用方法實(shí)例詳解的相關(guān)資料,這提供具體使用方法,希望能幫助到大家,需要的朋友可以參考下

IOS 中KVC的使用方法實(shí)例詳解

KVC是Key Value Coding的縮寫,意思是鍵值編碼。在iOS中,提供了一種方法通過使用屬性的名稱(也就是Key)來(lái)間接訪問對(duì)象的屬性方法。說(shuō)的有的拗口,實(shí)際上就是通過類定義我們可以看到類的各種屬性,那么使用屬性的名稱我們就能訪問到類實(shí)例化后的對(duì)象的這個(gè)屬性值。

      這個(gè)方法可以不通過getter/setter方法來(lái)訪問對(duì)象的屬性。因?yàn)橐粋€(gè)類的成員變量如果沒有提供getter/setter的話,外界就失去了對(duì)這個(gè)變量的訪問渠道。而KVC則提供了一種訪問的方法,這個(gè)在某些場(chǎng)合會(huì)很有威力。 

      不多說(shuō)了,上代碼:

@interface myPerson : NSObject 
{ 
  NSString *_name; 
  int   _age; 
  int   _height; 
  int   _weight; 
} 
@end 
@interface testViewController : UIViewController 
 
@property (nonatomic, retain) myPerson *testPerson; 
 
@end 
- (void)testKVC 
{ 
  testPerson = [[myPerson alloc] init]; 
   
  NSLog(@"testPerson's init height = %@", [testPerson valueForKey:@"height"]); 
  [testPerson setValue:[NSNumber numberWithInt:168] forKey:@"height"]; 
  NSLog(@"testPerson's height = %@", [testPerson valueForKey:@"height"]); 
} 

        第一段代碼是定義了一個(gè)myPerson的類,這個(gè)類有一個(gè)_height的屬性,但是沒有提供任何getter/setter的訪問方法。同時(shí)在testViewController這個(gè)類里面有一個(gè)myPerson的對(duì)象指針。 

        當(dāng)myPerson實(shí)例化后,常規(guī)來(lái)說(shuō)是無(wú)法訪問這個(gè)對(duì)象的_height屬性的,不過通過KVC我們做到了,代碼就是testKVC這個(gè)函數(shù)。

        運(yùn)行之后打印值就是: 

2013-11-02 11:16:21.970 test[408:c07] testPerson's init height = 0
2013-11-02 11:16:21.971 test[408:c07] testPerson's height = 168

    這就說(shuō)明確實(shí)讀寫了_height屬性。 

    KVC的常用方法:

 
- (id)valueForKey:(NSString *)key; 
- (void)setValue:(id)value forKey:(NSString *)key; 

    valueForKey的方法根據(jù)key的值讀取對(duì)象的屬性,setValue:forKey:是根據(jù)key的值來(lái)寫對(duì)象的屬性。 

    這里有幾個(gè)要強(qiáng)調(diào)一下

1. key的值必須正確,如果拼寫錯(cuò)誤,會(huì)出現(xiàn)異常
2. 當(dāng)key的值是沒有定義的,valueForUndefinedKey:這個(gè)方法會(huì)被調(diào)用,如果你自己寫了這個(gè)方法,key的值出錯(cuò)就會(huì)調(diào)用到這里來(lái)
3. 因?yàn)轭恔ey反復(fù)嵌套,所以有個(gè)keyPath的概念,keyPath就是用.號(hào)來(lái)把一個(gè)一個(gè)key鏈接起來(lái),這樣就可以根據(jù)這個(gè)路徑訪問下去
4. NSArray/NSSet等都支持KVC

 以上就是IOS KVC的使用方法,如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • iOS輸出手機(jī)系統(tǒng)版本號(hào)

    iOS輸出手機(jī)系統(tǒng)版本號(hào)

    這篇文章主要介紹了iOS輸出手機(jī)系統(tǒng)版本號(hào)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • iOS實(shí)現(xiàn)圖片六邊形陰影效果

    iOS實(shí)現(xiàn)圖片六邊形陰影效果

    這篇文章給大家分享了如何利用iOS實(shí)現(xiàn)圖片六邊形陰影的效果,文中給出實(shí)現(xiàn)的示例代碼,對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的可以參考借鑒,下面來(lái)一起看看吧。
    2016-09-09
  • IOS代碼筆記UIView的placeholder的效果

    IOS代碼筆記UIView的placeholder的效果

    這篇文章主要為大家詳細(xì)介紹了IOS實(shí)現(xiàn)placeholder效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • iOS輕點(diǎn)、觸摸和手勢(shì)代碼開發(fā)

    iOS輕點(diǎn)、觸摸和手勢(shì)代碼開發(fā)

    這篇文章主要為大家詳細(xì)介紹了iOS輕點(diǎn)、觸摸和手勢(shì)代碼開發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • iOS UIPickerView的簡(jiǎn)單封裝示例

    iOS UIPickerView的簡(jiǎn)單封裝示例

    這篇文章主要給大家介紹了關(guān)于iOS UIPickerView的簡(jiǎn)單封裝的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • iOS中常用的宏定義總結(jié)

    iOS中常用的宏定義總結(jié)

    這篇文章主要給大家介紹了關(guān)于iOS中常用的宏定義的相關(guān)資料,例如UI元素、Log、系統(tǒng)、顏色類等等的示例代碼,文中介紹地方非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • iOS中監(jiān)聽UITextField值改變事件的方法實(shí)例

    iOS中監(jiān)聽UITextField值改變事件的方法實(shí)例

    UITextField 是一個(gè)用來(lái)處理文本輸入和現(xiàn)實(shí)的控件,在我們的開發(fā)當(dāng)中也是經(jīng)常被用到。下面這篇文章主要給大家介紹了關(guān)于iOS中監(jiān)聽UITextField值改變事件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • iOS在狀態(tài)欄上顯示提醒信息的功能定制

    iOS在狀態(tài)欄上顯示提醒信息的功能定制

    這篇文章主要給大家介紹了iOS在狀態(tài)欄上顯示提醒信息的相關(guān)資料,實(shí)現(xiàn)后的效果非常不錯(cuò),文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • 詳解Swift model 解析的兩種方法

    詳解Swift model 解析的兩種方法

    這篇文章主要介紹了詳解Swift model 解析的兩種方法的相關(guān)資料,希望通過本文大家能夠掌握這里的兩種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-09-09
  • iOS中多線程的入門使用教程(Swift)

    iOS中多線程的入門使用教程(Swift)

    這篇文章主要給大家介紹了關(guān)于iOS中多線程入門使用的相關(guān)資料,一個(gè)進(jìn)程中可以開啟多條線程,每條線程可以并行執(zhí)行不同的任務(wù),本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11

最新評(píng)論