Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios MPMoviePlayerController占用内存_Ios_Iphone_Xcode_Memory Management_Mpmovieplayercontroller - Fatal编程技术网

Ios MPMoviePlayerController占用内存

Ios MPMoviePlayerController占用内存,ios,iphone,xcode,memory-management,mpmovieplayercontroller,Ios,Iphone,Xcode,Memory Management,Mpmovieplayercontroller,我有一个UIPageViewController作为应用程序的演练,我会显示如何使用该应用程序的简短视频 当用户进入主应用程序时,我让用户按下一个按钮。然而,调试导航器中的Xcode显示应用程序仍在使用53 MB的内存 有没有办法从电影播放器中释放内存?下面是播放电影的代码 -(IBAction)playMovie { mpc = [[MPMoviePlayerController alloc] initWithContentURL:self.imageFiles]; [mpc setMo

我有一个UIPageViewController作为应用程序的演练,我会显示如何使用该应用程序的简短视频

当用户进入主应用程序时,我让用户按下一个按钮。然而,调试导航器中的Xcode显示应用程序仍在使用53 MB的内存

有没有办法从电影播放器中释放内存?下面是播放电影的代码

-(IBAction)playMovie {



mpc = [[MPMoviePlayerController alloc] initWithContentURL:self.imageFiles];
[mpc setMovieSourceType:MPMovieSourceTypeFile];
[[self view] addSubview:mpc.view];
[mpc setFullscreen:NO];

[mpc.view setFrame:CGRectMake(45, 129, 229, 397)];

[mpc play];

}
以下是当用户按下按钮越过充满电影的介绍屏幕进入主应用程序时我所说的:

- (IBAction)ready:(id)sender {


UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PageContentViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];
[pageContentViewController.mpc stop];
pageContentViewController.mpc = nil;
UIViewController *viewController =
[storyBoard instantiateViewControllerWithIdentifier:@"ViewController"];
[self presentViewController:viewController animated:YES completion:nil];


}

到目前为止,该应用程序仍然分配了50 MB的内存

我认为,当此视图被破坏或您完成此电影时,您应该在dealloc函数中将此
MPMoviePlayerController
分配给nil:

- (void)dealloc{
  mpc = nil;
}

我认为这不是问题。您可以运行配置文件来检查内存泄漏

我补充了更多的问题。仍然获得50 MB的内存,但您可以尝试运行配置文件来检查内存泄漏。如果有内存泄漏,您将知道并修复(这是一个问题)。但是,“应用程序仍然分配了50多MB内存”->我认为这不是问题,因为设备必须使用内存加载电影文件才能播放。我运行了它,看起来没有内存泄漏。我只是很惊讶并没有释放内存当你们使用ARC时,释放内存是由系统管理的。您无法知道何时执行此操作。如果你通过内存泄漏工具检查,如果它是好的,我认为它是好的。你能试试autoreleasePool吗?我确实把代码放在了autoreleasePool的顶部,没有任何改变。我可能得看看接下来会发生什么