使用不同的对象类型发布单个通知

时间:2013-09-26 15:42:38

标签: iphone ios objective-c cocoa-touch cocoa

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

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

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

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

我意识到我所拥有的是可行和有效的,但我很好奇是否有令人信服的理由来避免这种模式。

1 个答案:

答案 0 :(得分:0)

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