OC KVC特性總結

2021-07-05 08:21:18 字數 1862 閱讀 3187

今天給大家列出kvc 的一些特性

我們可以任意修改 類中的值

包括一些私有的變數 kvc的功能很強大

是   //cocoa 的大招 其中有很多的特性 用法

下面列出了集中

講解了一下//key 和keypath的區別

我們在做專案的時候用的特別多

利用kvc 可以隨意修改乙個物件的屬性或者成員變數(並且私有的也可以修改)

先建立幾個類

kvc 的用法有註解 做了5個小demo 來說明kvc 的基本用法

#import @inte***ce book : nsobject

@property(nonatomic,assign)double price;

@property(nonatomic,copy)nsstring *name;

@end

#import "book.h"

@implementation book

@end

骨頭

#import "book.h"

@implementation book

@end

#import @inte***ce bone : nsobject

@property(nonatomic,strong)nsstring *type;

@end

#import @class dog;

@inte***ce person : nsobject

@property(nonatomic,copy)nsstring *name;

@property(nonatomic,assign)int age;

@property(nonatomic,strong)dog *dog;

@property(nonatomic,strong)nsarray *books;

- (void)printheight;

@end

#import "person.h"

@implementation person

- (void)printheight

@end

#import @class bone;

@inte***ce dog : nsobject

@property(nonatomic,copy)nsstring *name;

@property(nonatomic,strong)bone *bone;

@end

#import "dog.h"

@implementation dog

@end

#import #import "person.h"

#import "dog.h"

#import "bone.h"

#import "book.h"

int main(int argc, const char * argv)

//

// nslog(@"%@",names);

//

return 0;

}}/**

* kvc的取值

*/void test4()

void test3()

//key 和keypath的區別

void test2()

void test()

Oc KVC 鍵值編碼

是一種間接地訪問物件例項變數的機制 通過setvalue forkey 間接地為物件的例項變數做賦值 通過valueforkey 間接地取到物件的例項變數 首先定義兩個類person類 和phone類 1.先檢查有沒有name這個例項變數 2.如果沒有,會檢查同名的帶 的例項變數 3.如果還沒有,會...

OC KVC與KVO簡單介紹

kvc即key value coding鍵值編碼,是指ios的開發中,可以允許開發者通過key名直接訪問物件的屬性,或者給物件的屬性賦值。inte ce person nsobject property nonatomic,assign int age property nonatomic,copy...

C 特性總結

1 c 中類分為兩部分,成員變數和成員函式。成員函式位於 區,不占用類物件的空間。成員變數占用類物件的空間。2 每個成員函式有乙個this指標,一般情況下是成員函式的第乙個引數。3 物件一般情況下也是有資料對齊的。4 虛函式 如果乙個類中有虛函式,則會為此類生成乙個虛表 位於 區 然後在每個類物件的...