UI中的KVC 鍵值編碼訪問屬性的方式

2021-07-05 01:29:48 字數 1429 閱讀 2543

對於一般的屬性我們正常賦值方式

girl *normalgirl = [[girl alloc] init];

normalgirl.name = @"蒼老師"

; normalgirl.age = @"18"

; normalgirl.hobby = @"演戲"

;

取值

nslog(@"%@ %@ %@", normalgirl.name, normalgirl.age, normalgirl.hobby);
而kvc賦值方式有兩種,第一種是這樣的:

girl *kvcgirl = [[girl alloc] init];

[kvcgirl setvalue:@"愛妃"

forkey:@"name"];

[kvcgirl setvalue:@"20"

forkey:@"age"];

[kvcgirl setvalue:@"震動"

forkey:@"hobby"];

取值

nslog(@"

%@%@

%@",[kvcgirl valueforkey:@"name"], [kvcgirl valueforkey:@"age"], [kvcgirl valueforkey:@"hobby"]);

第二種是:

girl *dicgirl = [[girl alloc] init];

nsdictionary *dic = @;

[dicgirl setvaluesforkeyswithdictionary:dic];//通過字典賦值

nslog(@"%@", dicgirl);

[dicgirl release];

girl *errorgirl = [[girl alloc] init];

[errorgirl setvalue:@"貴妃" forkey:@"naem"];

nslog(@"%@", [errorgirl valueforkey:@"aeg"]);

你可能發現了這裡面最後兩行中的name,和age寫錯了,那麼問題來了,這就是我們使用kvc傳值的優點,如果你在類檔案中寫了下面的**,那麼把屬性名寫錯也沒事,他會幫你列印出來錯誤屬性名字

#pragma - kvc

//賦值遇見不能識別的key值

- (void)setvalue:(id)value forundefinedkey:(nsstring *)key

}//取值遇見不能識別的key值

- (id)valueforundefinedkey:(nsstring *)key

return

nil;

}

鍵值編碼 KVC 簡單的KVC

main.m kvc一 created by goddog on 15 1 3.1.我們可以通過setter和getter方法來設定和修改物件的屬性,同時也可以通過鍵值編碼 kvc 來操作物件屬性。2.何為kvc 以字串的形式間接的操作物件的屬性。設定值用 setvalue 屬性值 forkey 屬...

OC8 屬性 KVC是鍵值編碼

1.屬性,是oc提供的一種快速的模式化的建立例項變數的方式。1 屬性是通過 property標記的,2 屬性會在背後,默默的幫我們做set和get方法 2.屬性做的工作 1 建立乙個例項變數,名字是下劃線加屬性名,2 幫我們自動get和setter 的方式,建立一組方法,3.點語法,點語法是專門為了...

KVC 鍵值編碼與KVO鍵值監聽的應用(一)

1 鍵值編碼的基本概念和用法 鍵值編碼的基本概念 kvc是keyvalue coding的簡稱,它是一種可以直接通過字串的名字 key 來訪問類屬性的機制。使用該機制不需要呼叫訪問方法和變數例項就可以訪問物件屬性。本質上講,鍵 值編碼定義了你的程式訪問方法需要實現的樣式及方法簽名。在應用程式中實現鍵...