2013-10-06 14 views
3

爲什麼Apple選擇使用委託進行SDK對象間的某些通信,並將通知發佈到通知中心供他人使用?通知中心與iOS SDK中的委派

特別是,我正在考慮來自UIWindow的一組鍵盤外觀通知。

是否因爲通知中心繫統意味着多個對象可以使用鍵盤外觀動作作爲更改其狀態的觸發器,而只有一個對象能夠使用委託實現進行操作?

+1

[KVO vs NSNotification vs protocol/delegates?]可能的重複(http://stackoverflow.com/questions/7864838/kvo-vs-nsnotification-vs-protocol-delegates) –

回答

5

委派允許您執行方法(並將參數從一個類傳遞迴另一個類)。這允許即使沒有導入該類時也可以觸發一個方法。委託允許多個視圖控制器(或其他類)在單個視圖控制器中觸發方法。

另一方面,通知中心會偵聽並等待,直到聽到正在等待的消息。這允許多個視圖控制器中的多個監聽器等待並監聽給定的消息。

您可以說,委派是1 /多對1關係,而通知中心是1 /多對1 /多關係。