最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IOS 中KVC的使用方法實例詳解

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

IOS 中KVC的使用方法實例詳解

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

      這個方法可以不通過getter/setter方法來訪問對象的屬性。因為一個類的成員變量如果沒有提供getter/setter的話,外界就失去了對這個變量的訪問渠道。而KVC則提供了一種訪問的方法,這個在某些場合會很有威力。 

      不多說了,上代碼:

@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"]); 
} 

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

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

        運行之后打印值就是: 

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

    這就說明確實讀寫了_height屬性。 

    KVC的常用方法:

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

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

    這里有幾個要強調(diào)一下

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

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

相關(guān)文章

  • IOS多線程編程NSThread的使用方法

    IOS多線程編程NSThread的使用方法

    這篇文章主要介紹了IOS多線程編程NSThread的使用方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解使用多線程的方法,需要的朋友可以參考下
    2017-10-10
  • IOS App 無代碼入侵的方法hook詳細(xì)介紹

    IOS App 無代碼入侵的方法hook詳細(xì)介紹

    這篇文章主要介紹了IOS App 無代碼入侵的方法hook詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • iOS實現(xiàn)卡片堆疊效果

    iOS實現(xiàn)卡片堆疊效果

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)卡片堆疊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • IOS自帶Email的兩種方法實例詳解

    IOS自帶Email的兩種方法實例詳解

    這篇文章主要介紹了IOS自帶Email的兩種方法實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • iOS利用NSAttributeString實現(xiàn)不同顏色大小顯示的方法

    iOS利用NSAttributeString實現(xiàn)不同顏色大小顯示的方法

    這篇文章主要給大家愛介紹了關(guān)于iOS利用NSAttributeString實現(xiàn)不同顏色大小顯示的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • iOS自定義相機實現(xiàn)拍照、錄制視頻

    iOS自定義相機實現(xiàn)拍照、錄制視頻

    這篇文章主要為大家詳細(xì)介紹了iOS自定義相機實現(xiàn)拍照、錄制視頻,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • iOS判斷身份證號碼是否正確的方法

    iOS判斷身份證號碼是否正確的方法

    本篇文章主要介紹了iOS判斷身份證號碼是否正確的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • iOS開發(fā)之表視圖詳解

    iOS開發(fā)之表視圖詳解

    表視圖是iOS開發(fā)中最重要的視圖,它以列表的形式展示數(shù)據(jù)。本篇文章詳細(xì)的介紹了表視圖的幾種用法,有需要的小伙伴可以了解一下。
    2016-11-11
  • IOS 照片編輯的view封裝的實例詳解

    IOS 照片編輯的view封裝的實例詳解

    這篇文章主要介紹了IOS 照片編輯的view封裝的實例詳解的相關(guān)資料,這里提供實例幫助大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-08-08
  • 淺談WKWebView 在64位設(shè)備上的白屏問題

    淺談WKWebView 在64位設(shè)備上的白屏問題

    下面小編就為大家?guī)硪黄獪\談WKWebView 在64位設(shè)備上的白屏問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論

伊金霍洛旗| 班玛县| 拜城县| 涡阳县| 岳池县| 左贡县| 五寨县| 宁城县| 瑞丽市| 尼木县| 淮阳县| 南部县| 木兰县| 融水| 永靖县| 韶山市| 赤峰市| 隆子县| 平远县| 承德县| 韶山市| 柞水县| 天柱县| 丹棱县| 平乡县| 孝昌县| 红河县| 莒南县| 礼泉县| 岳西县| 南溪县| 南乐县| 乐山市| 蚌埠市| 陆河县| 甘洛县| 清水河县| 石首市| 本溪| 夏邑县| 曲阜市|