2010-06-23 61 views
0

这怎么可能在iPhone 3.1.3(3g iPhone)上返回non-nil?NSClassFromString(@“MPMoviePlayerViewController”)在3.1.3(iPhone)上返回非零偶数

- (BOOL) isIOS3_2OrAbove 
{ 
Class mplayerControllerClass = NSClassFromString(@"MPMoviePlayerViewController"); 
if(mplayerControllerClass != nil) 
{ 
    NSLog(@"MPMoviePlayerViewController not showing NIL! It is: %@\n",[mplayerControllerClass description]); 
    return YES; 
} 
else 
{ 
    NSLog(@"MPMoviePlayerViewController is showing NIL!\n"); 
    return NO; 
} 
} 

我得到这个返回:

MPMoviePlayerViewController not showing NIL! It is: MPMoviePlayerViewController 

这怎么可能发生呢?我在XCode 3.2.3上通过USB运行设备。

下面是代码调用它:

NSString *movieName = @"litedefault.mp4"; 

if ([self isIOS3_2OrAbove] == YES) 
{ 
movieName = @"litedefault_3_2.mp4"; 
} 

NSString *moviePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:movieName]; 

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath ]]; 

moviePlayer.movieControlMode = MPMovieControlModeHidden; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(set_up_views:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer]; 

if ([self isIOS3_2OrAbove] == YES) 
{ 
NSLog(@"IS iOS3.2 or above\n"); 
moviePlayer.view.frame = CGRectMake(0, 0, 320, 480); 
[window addSubview:moviePlayer.view]; 
[window makeKeyAndVisible]; 

} 
else 
{ 
NSLog(@"IS BELOW iOS3.2\n"); 
} 
[moviePlayer play]; 

明白,我想在3.2测试任何设备,所以我没有测试UI_USER_INTERFACE_IDIOM,例如。如您所见,3.2或更高版本需要将MPMoviePlayerController添加到视图。

任何想法?

附录:

看来,我们必须检查一类,它是不是一个私有API(在之前的iPhone OS版本)。我测试了UILongPressGestureRecognizer(它实际上是存在的,但在3.1.3中是私有的),并且得到了非零结果。

OKAY ....所以,这个问题基本上变成了:任何人都知道一个API,我可以检查,不在3.1.3(或更早)?

URGH!

回答

1

我认为你实际要问的问题是关于如何确定你是否在iPhone OS 3.2或更高版本上运行。为什么不简单地使用-[UIDevice systemVersion]

+0

OMGosh!我不认为这会很容易。显示我不应该没有咖啡因编程。谢谢! – Jann 2010-06-24 21:52:23

0

我用它成功。

if ([MPMoviePlayerController instancesRespondToSelector:@selector(view)]) 
+0

他说的是MPMoviePlayerVIEWController而不是MPMoviePlayerController,它是旧的。 – 2010-08-11 09:43:21