1

我有一个类作为 AVPlayer 的包装器,它的功能之一是在播放期间每 1 秒和 10 秒发布一次通知(即addPeriodicTimeObserverForInterval:在一般情况下更方便)。

以前,我通过此通知发送的对象是播放器包装器本身(即 ABPlayer.sharedPlayer)。今天我需要允许一些对象只接收有关特定媒体项目播放的通知。这可以通过[[someAVURLAsset URL] absoluteString]作为通知对象发送来完成(当然,当 中的资产AVPlayerAVURLAsset时)。

提示的问题是:在不同情况下使用不同类型的对象发布单个通知是否合适?我了解发送特定对象或发送nil(包罗万象)的价值,但我不记得看到可以发送替代类型对象的情况。不过,就我而言,这似乎是有道理的。

我可以简单地发送两个不同的通知,但由于这些通知总是只被发送以通知观察者一个事件,并且它们总是从代码中的同一个位置发送,它们只是感觉就像一个单一的通知。

我意识到我所拥有的一切是可能的并且有效,但我很好奇是否有充分的理由来避免这种模式。

4

1 回答 1

0

只要将发送给观察者的不同对象类型的场景很好理解并记录在案,就没有技术上的理由不能这样做。为每种对象类型发布不同的通知可能更符合上下文意义。它肯定会帮助任何可能最终维护您的代码的开发人员。

于 2013-09-26T15:46:47.713 回答