как заставить Device 3.1.3 не проходить, если (NSClassFromString (@ "MPMoviePlayerViewController")! = nil) это условие - PullRequest
0 голосов
/ 23 июня 2010

при запуске на устройстве 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 Ответ

1 голос
/ 27 июня 2010

Я использовал:

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