iOS開發之 KVC,KVO簡單了解

2021-07-05 05:29:59 字數 1590 閱讀 7050

一、kvc

1、key-value-coding 鍵值編碼(kvc)

: 是一種訪問值的方式,通過key存value或者通過key獲取value

2、key從哪兒來?

key把物件裡面的屬性名當做了乙個key(把屬性名、變數名看成了乙個普普通通的字串來使用)

以字串的形式向物件傳送訊息,字串是訪問值的關鍵。

3、給物件訪問值的時候可以使用kvc

person *fengshenghai = [[person alloc]init];

fengshenghai.name = @「";

4、把name這個屬性名當做了乙個字串key來使用

[fengshenghai setvalue:@"ios大牛" forkey:@「name"];

5、把name這個屬性名 當做了乙個字串key來取值

nsstring *valuename = [fengshenghai valueforkey:@"name"];

nslog(@「%@",valuename);

二、kvo 1、

kvo

鍵值觀察者—

通過key 來觀察 value 的變化

取做出響應

kvo(鍵值觀察者)主要用於檢視互動方面,比如介面的某些資料變化了,介面的顯示也跟著需要變化,那就需要建立資料和介面的關聯。

kvo 是一對一的傳值通過key來監測值是否發生改變如果發生改變,就會自動呼叫kvo的響應方法

人觀察狗,根據狗的表情做出對應的動作。

初始化兩個類,乙個人類,乙個狗類

狗類中。h中

@property (nonatomic,copy)nsstring *face;

人類。h中

//遇到乙隻狗觀察狗表情的變化

- (void)watchdog:(dog *)dog;

人類。m中

- (void)watchdog:(dog *)dog

//狗的新舊表情發生變化就會自動呼叫這個方法

//keypath來判斷是不是咱們觀察的key對應的值發生改變

//change是乙個字典字典裡面放了新舊屬性值的內容

- (void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary *)change context:(void *)context

if ([keypath isequaltostring:@"weiba"]) }

。main中實現

dog *dahuilang = [[dog alloc]init];

dahuilang.face = @"smile";

[dahuilang setvalue:@"耷拉著~~" forkey:@"weiba"];

person *libai = [[person alloc]init];

[libai watchdog:dahuilang];

dahuilang.face = @"wang!wang!wang!~~";

[dahuilang setvalue:@"豎起來了~~" forkey:@"weiba"];

iOS開發之TCP UDP Socket簡單介紹

1.udpudp 是一種不可靠的網路協議。qq用的是這個協議 udp是 user datagram protocol 的簡稱,中文名是使用者資料報協議,是 osi參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是 udp的正式規範。udp協議基本上是 ...

iOS開發學習之簡單動畫

原文 一 uiactivityindicatorview 1 屬性 isanimating屬性判斷是否正在動畫 2 第三方庫svprogresshud svprogresshud dismiss svprogresshud showwithstatus 網路載入中 masktype svprogre...

iOS開發之歸檔

歸檔是一種物件都可以實現的更加常規的序列化方式。適用對模型物件進行歸檔的技術可以輕鬆將複雜物件寫入檔案和從檔案中進行讀取。大多數支援儲存資料的foundation和cocos touch類都遵循nscoding協議 不過有些例外,例如uiiamge 因此對於大多數系統提供的類而言,歸檔比較輕鬆。如果...