我目前正在使用-respondsToSelector:
,如此:
if (![moviePlayer respondsToSelector:@selector(currentPlaybackTime)]) {
NSLog(@"Cannot get current playbackTime on %@", moviePlayer);
return;
}
其中moviePlayer是一个实例化的MPMoviePlayerController对象。我做了很多其他类似的选择器检查,所以我知道其他一切工作正常,但由于某种原因,这个respondsToSelector检查返回false,即使我做time = [moviePlayer currentPlaybackTime]
之类的事情,它也可以正常工作。这是在4.0+ iOS上,所以它没有理由返回false。
为什么会发生这种情况的原因?
答案 0 :(得分:1)
根据iOS类引用, currentPlaybackTime
是MPMusicPlayerController
的属性,而不是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
{
}