iOS中KVO使用理解

來源:互聯網
上載者:User

標籤:自動   並且   object c   move   string   cti   必須   缺點   str   

什麼是KVO

KVO<NSKeyValueObserving>,是一個非正式協議,提供了一個途徑,使對象(觀察者)能夠觀察其他對象(被觀察者)的屬性,當被觀察者的屬性發生變化時,觀察者就會被告知該變化。

基本使用

添加觀察者:

- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context; 實現觀察回應程式法: - (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary*)change context:(nullable void *)context;
移除觀察者: - (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath; 

KVO 的使用與Notification非常相似,都能實作類別與類之間一對多的通訊。KVO是一個對象能夠觀察另外一個對象的屬性的值,並且能夠發現值的變化,適合任何類型的對象監聽另外一個任意對象的屬性的改變。比較常用來在Modal和View之間:View來監聽Modal的變化而做出更改。

優點:1.使用簡單,只需三步完成;

            2.當被觀察者的對象的屬性發生改變時,自動通知相應的觀察者了;

缺點:1.只能用來對對象的屬性作出反應,而不會用來對方法或者動作作出反應;

           2.觀察的屬性必須使用string來定義,編譯器不會檢測,容易出錯;

 

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.