iOS通知的使用

來源:互聯網
上載者:User

標籤:

註冊:[[NSNotificationCenter defaultCenter] postNotificationName:@"changeColor" object:self];

接收處觀察  : [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeColor) name:@"changeColor" object:nil];

addObserver處remove掉觀察者:

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter]removeObserver:self];
}

 

通知是iOS中典型的觀察者模式。

1.iOS中的觀察者模式:通知,KVO;

2.通知和代理的區別:

 個人覺得,通知是觀察者模式,代理是代理模式,所以通知和代理的區別就在於兩種模式的區別。

①觀察者模式是一對多,多用於不明確觀察者時;代理模式是一對一,明確知道把something代理給誰;

②通知中樞實際上是在程式內部提供了訊息廣播的一種機制。通知中樞不能在進程間進行通訊。實際上就是一個二傳手,把接收到的訊息,根據內 部的一個訊息轉寄表,來將訊息轉寄給需要的對象。通知中樞是基於觀察者模式的,它允許註冊、刪除觀察者。
一個NSNotificationCenter可以有許多的通知訊息NSNotification,對於每一個NSNotification可以有很多的觀察者Observer來接收通知。

委託代理(degegate),顧名思義,把某個對象要做的事情委託給別的對象去做。那麼別的對象就是這個對象的代理,代替它來打理要做 的事。反映到程式中,首先要明確一個對象的委託方是哪個對象,委託所做的內容是什麼。

如果通知過多,會造成通知的管理複雜,如果管理不好,你會接收到莫名其妙的訊息,而無法追蹤。

 

iOS通知的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.