![](/img/trans.png)
[英]iOS: Should I use a delegate or an NSNotification in this situation?
[英]What is the use of Post NSNotification in ios?
我使用NSNotification Center獲取當前的iPhone音量。 示例[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:MPMusicPlayerControllerVolumeDidChangeNotification object:musicPlayer];
我沒有在代碼中使用post通知,但是調用了volumeChanged方法。 那么發布通知有什么用?如何使用?
iOS會自動生成許多通知,您可以觀察它們並做出相應的反應,這正是您通過偵聽音量更改通知所做的事情。
您還可以自由地將自己的消息發布到通知中心,並且代碼的其他部分可能會對其進行響應。
在一個方法中,您可以調用如下代碼:
[[NSNotificationCenter defaultCenter] postNotificationName:@"com.ryan.cumley.updatedData" object:nil];
您可以根據需要命名該通知,盡管為避免沖突,您可以使用com.xxx.xxx。任何一種表示法。
現在,您的應用程序中當前存在的任何對象(先前也已將該對象自己添加為該通知名稱的觀察者)將收到此消息並觸發其選擇器。
這種設計模式對於在遙遠的對象之間傳遞消息而無需彼此之間保持任何清晰的引用特別有用。 此外,許多不同的對象可以同時觀察,而不僅僅是1-1消息。
您還可以使用該object:
參數將事件與通知一起傳遞。
您正在訂閱通知(因此您不必發送它)。 MPMusicPlayerController
可能是發送通知的類/實例。
您可以在此處詳細了解通知的工作方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.