我使用 NSNotification 中心来获取当前的 iPhone 音量。例如 [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(volumeChanged:)
name:MPMusicPlayerControllerVolumeDidChangeNotification
object:musicPlayer];
,我没有在我的代码中使用 post Post 通知,但调用了 volumeChanged 方法。那么Post Notification有什么用以及如何使用呢?
问问题
501 次
2 回答
1
许多通知是由 iOS 自动生成的,您可以观察它们并做出相应的反应,这正是您通过监听音量更改通知所做的事情。
您也可以自由地将自己的消息发布到通知中心,并且您的代码的其他部分可能会响应它们。
从一个方法中,你可以调用这样的东西:
[[NSNotificationCenter defaultCenter] postNotificationName:@"com.ryan.cumley.updatedData" object:nil];
您可以随意命名通知,但为了避免冲突,您可以使用 com.xxx.xxx.whatever 表示法。
现在,您的应用程序中当前存在的任何对象(之前也将其自身添加为此通知名称的观察者)将收到此消息并触发它的选择器。
这种设计模式对于在远距离对象之间传递消息特别有用,而无需维护任何类型的相互清晰引用。此外,许多不同的对象可以同时观察,这不仅仅是一个1-1的消息。
您还可以使用该object:
参数通过通知传递内容。
于 2013-11-14T13:15:57.687 回答
0
您正在订阅通知(因此您不必发送它)。可能MPMusicPlayerController
是发送通知的类/实例。
您可以在此处阅读有关通知工作原理的更多信息。
于 2013-11-14T13:07:49.003 回答