我正在制作一个通用函数来处理C4中不同媒体类型的停止和启动。我尝试了以下方法进行调用,但是当以这种方式调用时,似乎play方法与AVPlayer play方法中的play方法冲突。有没有办法解决这个问题?
-(void) StartStop: (NSNotification *) notification
{
if( [[notification object] isKindOfClass:[C4Movie class]] )
{
if( [[notification object] isPlaying])
[[notification object] pause];
else
[[notification object] play];
}
}
答案 0 :(得分:1)
解决方案是将通知对象强制转换为特定的类,以便编译器知道要调用的对象。 Objective-C使用动态绑定。有关详细说明,请参阅此问题:Late Binding vs Dynamic Binding
-(void) StartStop: (NSNotification *) notification
{
if( [[notification object] isKindOfClass:[C4Movie class]] )
{
C4Movie * temp = [notification object];
if( [temp isPlaying])
[temp pause];
else
[temp play];
}
}