我使用NSNotification中心来获取当前的iPhone音量。示例[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(volumeChanged:)
name:MPMusicPlayerControllerVolumeDidChangeNotification
object:musicPlayer];
我没有在我的代码中使用post post通知,但调用了volumeChanged方法。那么邮政通知的用途是什么以及如何使用它?
答案 0 :(得分:1)
iOS会自动生成许多通知,您可以观察它们并做出相应的反应,这正是您通过收听音量更改通知所做的事情。
您也可以将自己的消息发布到通知中心,代码的其他部分也可以回复。
从一个方法中你可以称之为:
[[NSNotificationCenter defaultCenter] postNotificationName:@"com.ryan.cumley.updatedData" object:nil];
您可以根据需要为通知命名,但为避免冲突,您可以使用com.xxx.xxx.whatever表示法。
现在,您的应用中当前存在的任何对象(之前也已将其自身添加为此通知名称的观察者)将收到此消息并触发其选择器。
此设计模式对于在远程对象之间传递消息特别有用,而无需保持对彼此的任何明确引用。此外,许多不同的对象可以同时观察,它不仅仅是1-1消息。
您还可以使用object:
参数传递包含通知的内容。
答案 1 :(得分:0)
您正在订阅通知(因此您无需发送通知)。可能MPMusicPlayerController
是发送通知的类/实例。
您可以详细了解通知的工作原理here。