Закрытие и повторное открытие окна утечки памяти - PullRequest
1 голос
/ 16 мая 2011

Есть проблема здесь. Я создаю MAAttachedWindow, а затем скрываю его, когда происходит определенное событие. Вот как выглядит код:

-(void)toggleDetailShouldShow:(BOOL)show {
    if (show) {
        if (!attachedWindow) {
            NSPoint buttonPoint = NSMakePoint(NSMidX([[someView someImageView] frame]),
                                              NSMidY([[someView someImageView] frame]));
            attachedWindow = [[MAAttachedWindow alloc] initWithView:view 
                                                    attachedToPoint:buttonPoint 
                                                           inWindow:window 
                                                             onSide:12
                                                         atDistance:65.0];
            //setup here
            [attachedWindow setAlphaValue:0.0];
            [[[someView someImageView] window] addChildWindow:attachedWindow ordered:NSWindowAbove];
            [[attachedWindow animator] setAlphaValue:1.0];
        } 
    }
    else {
        if (attachedWindow) {
            [[[someView someImageView] window] removeChildWindow:attachedWindow];
            [attachedWindow orderOut:self];
            [attachedWindow release];
            attachedWindow = nil;            
        }
    }
}

Когда это срабатывает несколько раз, использование памяти постоянно растет. Любая причина, почему это протекает?

1 Ответ

2 голосов
/ 16 мая 2011

Это идеальная ситуация для использования Анализ кучи .

Симптомы, которые вы описываете, в точности совпадают с симптомами, которые я видел в Hex Fiend при написании этой статьи.

Скорее всего, чем бы ни была утечка - и это действительно утечка в том, что ваше приложение наращивает память - все еще подключено к остальной части графа объектов приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...