2014-01-13 38 views
1

考慮像下面的例子:有沒有辦法指定NSNotifications的發送者/接收者的粒度?

  • 我有書籍的圖書館,書有困難和流派。
  • 每本書都是一些對象的實例,可以通過視圖控制器(I.E.集合視圖,其中每個單元格是一本書,也許是僅顯示一本書的詳細視圖)呈現。
  • 這些書籍的數據可以通過某種同步方法在後臺更新。有可能只有一本書被更新,或者可能只有一個類型。

我希望類(主要是視圖)能夠接收更新通知。我希望這些通知很清楚。所以當所有非小說類書籍都更新時,這是應該通知的內容。 我當然可以爲每種類型使用單獨的通知名稱,但如果我們談論整個圖書館,則包含數千個對象的大集合視圖將意味着註冊太多觀察者。在這種情況下,觀察者可能會選擇收到關於書籍的任何通知,或者任何類型的通知。

我在NSNotification中遺漏的(或似乎無法弄清的)是指定此需求的某種粒度。 因此,在短期:

  • 有沒有辦法告訴NSNotification更具體,我想接收/誰把它發送到什麼樣的通知?
  • 或者,我可以將對象附加到通知嗎?如果是這樣,我可以在此對象中對通知的範圍(如元數據)進行建模,並讓接收方檢查此數據。

回答

2

是的,你可以做到這一點,只需指定對象,並在字典收拾你的元數據和附加您的通知,userInfo.and使用這種方法來發布通知:

- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo 

那麼你可以訪問您的通知,如:

​​3210
+0

我不敢相信我沒有意識到這一點。謝謝! –

相關問題