MPMoviePlayerController

MPMoviePlayerController

我目前正像这样使用-respondsToSelector:

if (![moviePlayer respondsToSelector:@selector(currentPlaybackTime)]) {
    NSLog(@"Cannot get current playbackTime on %@", moviePlayer);
    return;
}


其中moviePlayer是实例化的MPMoviePlayerController对象。我进行了许多其他类似的选择器检查,因此我知道几乎所有其他工具都可以正常工作,但是由于某种原因,即使我做了类似time = [moviePlayer currentPlaybackTime]的操作,此responsToSelector检查仍返回false。这是在4.0+ iOS上,因此没有理由返回false。

有什么原因会发生这种情况?

最佳答案

根据iOS类参考,currentPlaybackTimeMPMusicPlayerController的属性,而不是MPMoviePlayerController

MPMusicPlayerController:
http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/Reference/Reference.html

MPMoviePlayerController:
http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/MPMoviePlayerController/MPMoviePlayerController.html

它可能是MPMoviePlayerController的私有属性,没有访问者。

编辑(请参阅评论)

确定操作系统版本:

float iPhoneOSVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

if ( iPhoneOSVersion < 3.2 )
{

}
else
{

}

关于iphone - RespondsToSelector返回假阴性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4209679/

10-13 04:29