iOS Swift:是否从NSNotificationCenter清除特定类型的通知?

iOS Swift:是否从NSNotificationCenter清除特定类型的通知?,ios,swift,notifications,nsnotificationcenter,Ios,Swift,Notifications,Nsnotificationcenter,是否有方法从NSNotificationCenter.defaultCenter()中清除所有具有notificationName=AVSystemController\u SystemVolumeDidChangeNotification的通知 我研究了许多问题,发现了一种使用`取消本地通知(通知)清除本地通知(UILocalNotification而不是NSNotifications)的方法。我还找到了从通知中心清除所有通知的方法。我还查阅了通知中心的文档,但没有找到相关信息 注意:这就是我

是否有方法从
NSNotificationCenter.defaultCenter()
中清除所有具有notificationName=
AVSystemController\u SystemVolumeDidChangeNotification
的通知

我研究了许多问题,发现了一种使用`取消本地通知(通知)清除本地通知(UILocalNotification而不是NSNotifications)的方法。我还找到了从通知中心清除所有通知的方法。我还查阅了通知中心的文档,但没有找到相关信息

注意:这就是我想要它的原因:我想要添加一个音量变化的观察者(当用户按下音量按钮时),我使用(
AVSystemController\u SystemVolumeDidChangeNotification

但是,当我添加它时,我必须等待半秒钟(
dispatch\u after
),以避免用户在添加观察者之前(或添加观察者时)累计按下按钮。换句话说,观察者在我告诉通知中心开始“观察”之前会在通知中心找到“旧”通知

所以,我不想阻止主线程。相反,我希望在添加观察者之前清除所有卷更改通知(这样我可以确保没有“旧”通知会触发我的操作)

我想清除具有此notificationName的特定类型的通知


您知道如何使用Swift吗?

您把UILocalNotification和NSNotification搞混了<代码>取消本地通知从设备的通知屏幕中删除UILocalNotification。添加观察者之前的通知不会传递给观察者。您收到的任何卷更改通知都是在添加了观察器后发生的。您可以调查使用KVO的系统卷是否为您提供了更好的行为。谢谢你@Paulw11。我理解其中的区别。我只是说我发现的所有问题都与UILocalNotifications相关,而不是NSNotifications。是的,不应添加旧通知,但有时会添加。我对它进行了多次测试。建立AVAudioSession和注册volume notification observer之间的差距有多大?从系统到应用程序的批量更改可能会有一些延迟,但您对此无能为力;无法清除队列。也许您可以注册一个对事件不做任何操作的观察者,然后删除它并在一两秒钟后添加“真实”的观察者