如何使Device 3.1.3不通过if(NSClassFromString(@“MPMoviePlayerViewController”)!= nil)这个条件

时间:2010-06-23 00:26:02

标签: iphone iphone-sdk-3.0 compatibility media-player ios4

在Device 3.1.2上运行时,为什么它也传递if(NSClassFromString(@“MPMoviePlayerViewController”)!= nil) 并做iOS4的代码然后它会崩溃,如何解决这个问题?

if(NSClassFromString(@"MPMoviePlayerViewController") != nil) {
                    // iOS 4 code
         NSLog(@"MPMoviePlayerViewController");
         MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:AppDelegate.PushLink]];
         if (mp) {
         // save the movie player object
         self.theMovie4 = mp;
         [mp release];
         //Present
         [self presentMoviePlayerViewControllerAnimated:self.theMovie4];

         // Play the movie!
         self.theMovie4.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
         [self.theMovie4.moviePlayer play];
         }
         }
         else {
                        //iOS 3 Code
         AppDelegate = nil;
         AppDelegate = [[UIApplication sharedApplication] delegate];
         [AppDelegate ForceHideNavigationBar];
         theMovie3 = nil;

         [[NSNotificationCenter defaultCenter] addObserver:self 
         selector:@selector(moviePreloadDidFinish:) 
         name:MPMoviePlayerContentPreloadDidFinishNotification 
           object:theMovie3];

         [[NSNotificationCenter defaultCenter] addObserver:self 
         selector:@selector(moviePlayBackDidFinish:) 
         name:MPMoviePlayerPlaybackDidFinishNotification 
           object:theMovie3];

         // Register to receive a notification when the movie scaling mode has changed. 
         [[NSNotificationCenter defaultCenter] addObserver:self 
         selector:@selector(movieScalingModeDidChange:) 
         name:MPMoviePlayerScalingModeDidChangeNotification 
           object:theMovie3];

         theMovie3 = [[MPMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString:AppDelegate.PushLink]];

         [theMovie3 play];

         }

1 个答案:

答案 0 :(得分:1)

我用过:

if (NSClassFromString(@"MPMoviePlayerViewController") != nil
    && [UIViewController instancesRespondToSelector: @selector(presentMoviePlayerViewControllerAnimated:)]) {
    // iOS 4