我目前正像这样使用-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类参考,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
{
}
关于iphone - RespondsToSelector返回假阴性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4209679/