MPMoviePlayerController无法在iOS 5 xcode(带故事板)中工作,但在iOS 4中运行完美

Rob*_*Rob 1 iphone objective-c ios ios5

我在使用iOS 5 beta附带的新xcode播放电影时遇到问题.我创建了一个简单的项目(带有故事板和所有),并将此代码添加到按钮:

MPMoviePlayerController *moviePlayer;
NSString *path = [[NSBundle mainBundle] pathForResource:@"position" ofType:@"m4v"];
NSURL *videoURL = [NSURL fileURLWithPath:path];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
//[moviePlayer setControlStyle:MPMovieControlStyleDefault];
[moviePlayer.view setFrame: self.view.bounds];  // player's frame must match parent's
[self.view addSubview: moviePlayer.view];
[moviePlayer prepareToPlay];
[moviePlayer play];
Run Code Online (Sandbox Code Playgroud)

令人困惑的是,当我将代码放入使用以前版本的xcode(特别是iOS 4.3附带的版本)构建的项目时,它可以正常工作.

有任何想法吗?

Ale*_*ula 13

Objective-C的新手,但我会试一试.使用Xcode 4.2(提供iOS5代码),默认情况下,新项目启用了ARC(自动引用计数).对于你给出的代码,因为你在这段代码中声明了moviePlayer,所以当moviePlayer走出块时会自动释放.在较旧的项目中,moviePlayer会继续存在,可能会造成内存泄漏.我通过在类的头文件中声明moviePlayer来启用默认的Xcode 4.2 ARC设置,这意味着只有在释放该类的对象实例时才会释放它.


小智 7

MPMoviePlayerController *moviePlayer;
Run Code Online (Sandbox Code Playgroud)

把它放在标题(.h)文件及其工作上