Я пишу приложение для записи видео для Mac с какао, и у меня огромные проблемы с использованием памяти.
При запуске приложения у меня есть окно с двумя кнопками, с помощью которых я могу изменить вид, и простойпользовательский вид загрузки веб-камеры.Только это представление занимает 21 Мб оперативной памяти, когда я нажимаю на одну из кнопок, я изменяю пользовательский вид на QTMovie контента, записанного с камеры.
Каждый раз, когда я меняю вид, мое приложение заполняет около 10 Мббарана, и никогда не останавливается.У меня есть сборка мусора.Даже если я показываю вид QTMovie и хочу нажать кнопку, чтобы отобразить его снова, требуется больше оперативной памяти.
Код, который загружает подпредставление, запускается с кнопки
if ([myCurrentViewController view] != nil)
[[myCurrentViewController view] removeFromSuperview];
NSViewController* cameraViewController2 = [[NSViewController alloc] initWithNibName:@"kVideo" bundle:nil];
if (cameraViewController2 != nil)
{
myCurrentViewController = cameraViewController2;
}
[myTargetView addSubview: [myCurrentViewController view]];
И это то, что происходит, когда videoView загружается, и это занимает 10 МБ ОЗУ каждый раз, когда я хочу, чтобы он отображался.
-(void)playMovie
{
[movieView setMovie:nil];
NSString* moviePath = [NSBundle pathForResource:@"tempFile" ofType:@"mov" inDirectory:@"/Users/Shared/"];
QTMovie* movie = [[QTMovie alloc] initWithFile:moviePath error:nil];
[movieView setMovie:movie];
}
- (void)awakeFromNib
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveEvent3:) name:@"updateVideoPlayer" object:nil];
[self playMovie];
}