我需要一个简单的示例程序来通过Swift中的NSNotificationCenter发送和接收消息? 我正在使用核心音频,我需要通知我的应用程序,如果在我播放音频时移除了手机。我不知道是否应该在app委托或我的视图中添加观察者,因为我必须继续在后台播放音频。
这是我用来控制路线变化以了解耳机是否被移除的功能。
-(void)handleRouteChange:(NSNotification *)notif
{
NSDictionary *dict = notif.userInfo;
AVAudioSessionRouteDescription *routeDesc = dict[AVAudioSessionRouteChangePreviousRouteKey];
AVAudioSessionPortDescription *prevPort = [routeDesc.outputs objectAtIndex:0];
if ([prevPort.portType isEqualToString:AVAudioSessionPortHeadphones]) {
//Head phone removed
}
}
答案 0 :(得分:3)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "handleRouteChange:", name: AVAudioSessionRouteChangeNotification, object: nil);
NSNotificationCenter.defaultCenter().postNotificationName(AVAudioSessionRouteChangeNotification, object: nil)
答案 1 :(得分:2)
创建通知
let thisNotification = NSNotification(name: "createdNotification", object: nil)
NSNotificationCenter.defaultCenter().postNotification(thisNotification)
观察通知
NSNotificationCenter.defaultCenter().addObserver(self, selector:"onCreatedNotification", name:"createdNotification", object: nil)
func onCreatedNotification(notification: NSNotification) {
print("Notification received")
}