如何使用KVO

用法

KVO鍵值觀察,使用起來非常方便
舉個例子:比如你想要再某個值改變的時候執行一個方法(每次改變都要執行)
你只需要坐到以下兩點即可:

  1. 給某對象添加觀察者
    [某對象 addObserver:self forKeyPath:@"你要觀察的屬性名" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];

  2. 實現回調方法,該方法在你所觀察的值改變的時候會觸發
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context


示例代碼

#import <UIKit/UIKit.h>
@interface YYListView : UIView<UITableViewDataSource,UITableViewDelegate>
//該屬性設為要觀察的值
@property (nonatomic, assign) NSInteger index;
@end


//在控制器中創建一個YYListView的對象,給它添加觀察者
- (void)viewDidLoad{
[super viewDidLoad];

YYListView *LV = [YYListView alloc]init];
[LV addObserver:self forKeyPath:@"index" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
}

 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    //每當值改變就調用action方法
   [ self action];
  }

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容