[IOS學習筆記]KVO

來源:互聯網
上載者:User

標籤:style   blog   io   ar   color   os   sp   java   for   

//屬性@property(nonatomic) BOOL isFinished;
//註冊監聽 [self addObserver:self forKeyPath:@"isFinished" options:0 context:NULL];
//響應變更事件- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ if ([keyPath isEqualToString:@"isFinished"]) { NSLog(@"changeeddd"); } else { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; }}
//變更屬性數值[button addTarget:self action:@selector(changeFinished:) forControlEvents:UIControlEventTouchUpInside];-(void)changeFinished:(id)sender {//自動通知 [self setValue:[NSNumber numberWithBool:YES] forKey:@"isFinished"];}

註冊監聽器參數 options

NSKeyValueObservingOptionNew 表示屬性未改變?之前的值;

NSKeyValueObservingOptionOld 表示屬性改變後的值;?

 

移除觀察者:

[subject removeObserver:observer forKeyPath:@"name"]; 

 

KVO相當於JAVA:

account.setListener(new MyListener(){

    inspector.method();

});

 

但是不需要和JAVA一樣聲明一個MyListener介面,也不需要在account類中建立一個setListeber(MyListener listener);的方法,所以更靈活,但是變更屬性時不能簡單賦值!

 

[IOS學習筆記]KVO

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.