<span style="font-size:18px;">KVO</span>
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
Movie *movie = [[Movie alloc] init];
/*
註冊鍵值觀察(不用的時候一定要註銷掉)
參數1:觀察者
參數2:觀察那個屬性
參數3:觀察哪些變化
參數4:做傳值用
參數3:枚舉類型:new:打印修改後的值(在值修改後調用一次)
old:打印修改前的值(在值修改後調用一次)
initial:在值創建或修改就打印一次(當對象創建的時候,屬性默認值爲nil)
prior:值修改前和修改後各調用一次,並且用notificationIsPrior來表示修改前
*/
[movie addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionPrior context:NULL];
movie.name = @"崔成傑";
NSLog(@"/////////");
movie.name = @"王剛";
//註銷觀察
[movie removeObserver:self forKeyPath:@"name"];
}
//觀察方法
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"/////%s", __func__);
NSLog(@"//////%@", keyPath);
NSLog(@"+++++++%@", change);
}
KVO
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.