2014-04-29 51 views
0

我有一個UIPageViewController作爲應用程序的演練,並且顯示如何使用該應用程序的簡短視頻。MPMoviePlayerController佔用內存

我有用戶在用戶完成轉到主應用程序時按下按鈕。但是,Debug Navigator中的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的內存

回答

0

我認爲,當這一觀點被破壞了,你應該在的dealloc功能分配這個MPMoviePlayerController到零或當你完成這個電影

- (void)dealloc{ 
    mpc = nil; 
} 

我認爲這不是問題。您可以運行PROFILE來檢查內存泄漏。

+0

我增加了更多的問題。仍然獲得50 MB的內存,雖然 – MScottWaller

+0

你可以嘗試運行PROFILE來檢查內存泄漏。如果有泄漏的內存,您將瞭解並解決(這是一個問題)。但是,「應用程序仍然分配部分50 MB的內存」 - >我認爲這不是一個問題,因爲設備必須使用的內存加載電影文件玩。 – nmh

+0

我給了它一個運行,它看起來沒有內存泄漏。我很驚訝沒有釋放內存 – MScottWaller