1 //KVC(Key Value Coding) 2 //KVC的作用給某個對象的屬性賦值,和點語法中的賦值的作用相同 3 Student *stu=[[Student alloc]init]; 4 [stu setValue:@"xiaowang" forKey:@"name"]; 5 NSLog(@"%@",stu.name); 6 7 8 //KVO(Key Value Observer) 9 //給學生對象添加觀察者10 //第一個參數為誰去觀察學生11 //第二個參數為觀察學生的那個屬性12 //第三個參數為觀察方式13 14 //實例化學生對象15 stu=[[Student alloc]init];16 [stu setValue:@"zhangsan" forKey:@"name"];17 [stu addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];18 //從新設置學生對象的name屬性為xiaowang19 [stu setValue:@"xiaowang" forKey:@"name"];
//觀察者發現被觀察的屬性發生改變時調用該方法,誰是觀察者就寫在誰的.m里-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ NSLog(@"new:%@",[change objectForKey:@"new"]); NSLog(@"old:%@",[change objectForKey:@"old"]);}
新聞熱點
疑難解答