KVO的簡單使用

2021-08-03 03:04:02 字數 1053 閱讀 4597

kvo:  key value observing

主要用於檢視、資料互動,比如介面中相關資料發生了變化,介面的顯示也要跟著變化,這時候就需要 kvo 建立介面和資料之間的連線。

1.使用場景一

stockobj.h

#import @inte***ce stockobj : nsobject

@property(nonatomic,strong) nsstring *stockid;

@property(nonatomic,strong) nsstring *price;

- (void)changestockprice:(nsstring *)newprice;

@end

stockobj.m

#import "stockobj.h"

@implementation stockobj

- (void)changestockprice:(nsstring *)newprice

@end

vc中首先註冊觀察

self.stock = [[stockobj alloc] init];

self.stock.stockid = @"shdq";

self.stock.price = @"10";

[self.stock addobserver:self forkeypath:@"price" options:nskeyvalueobservingoptionnew|nskeyvalueobservingoptionold context:nil];

實現方法

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

}

當 price 這個屬性被改變時,vc 的 mylabel 也會更新改變的值

2.自己實現 kvo

關於swift中KVO的簡單使用

通過kvo實現檢視背景顏色的輪換 class viewcontroller uiviewcontroller override func didreceivememorywarning class colormodel nsobject func timeaction 這個是colorview檢視裡...

如何使用KVO

void viewdidload void observevalueforkeypath nsstring keypath ofobject id object change nsdictionary change context void context void dealloc我們建立了乙個la...

MBProgressHUD 使用的KVO分析

pragma mark kvo 註冊kvo被觀察者需要被觀察的屬性,新增傳值給被觀察者出來方法的傳值選項,傳新值還是舊值,還是兩個都傳。void registerforkvo 移除kvo被觀察者需要被觀察的屬性 void unregisterfromkvo 生成kvo需要被觀察者需要被觀察的屬性陣列...