通知转换会导致编译错误

时间:2013-06-07 00:55:19

标签: c4

我正在制作一个通用函数来处理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];
    }
}

1 个答案:

答案 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];
    }
}