Как вы управляете памятью при добавлении UIImageView в другое представление Windows? - PullRequest
0 голосов
/ 09 марта 2011

Так как я думаю, что напугал всех своим другим недавним постом ( Управление памятью при добавлении UIImageView в представление другого viewController из представления другого viewController ), и у меня заканчивается время, я простохотел бы спросить об этом в более простых сроках.Если вы хотите знать, что я делаю более подробно, обратитесь к другому посту.

Как вы управляете памятью и освобождаете ее при добавлении UIImageView в другое представление Windows?

т.е. я создаю UIImageView в одном представлении и добавляю его как подпредставление в других окнах.Посмотреть.Другое окно используется телевизором.

Прямо сейчас у меня есть:

            mapImageViewEx = [[UIImageView alloc] init];

            // I think you can ignore these two things below
            CGPoint p = mapScrollView.contentOffset;
            mapImageViewEx.frame = CGRectMake((p.x*-1), (p.y*-1), mapImageView.frame.size.width, mapImageView.frame.size.height);

            NSString *mapExFileLocation = [[NSBundle mainBundle] pathForResource:[map_List objectAtIndex:mapNum] ofType:@"png"];
            NSData *mapExIMGData = [NSData dataWithContentsOfFile:mapExFileLocation];
            mapImageViewEx.image = [UIImage imageWithData:mapExIMGData];

            // finds the other window's view controller's view
            UIView *containerExViewP = (UIView*)[del.switchExVC.view viewWithTag:9000];

            // adds it
            [containerExViewP addSubview:mapImageViewEx];

Проблема, с которой я сталкиваюсь, заключается в том, что оно продолжает накапливать память при каждом выходе из вида.Отпускание изображения в dealloc с экрана iPad позволяет ничего не делать.

1 Ответ

0 голосов
/ 09 марта 2011

изменить

        mapImageViewEx = [[UIImageView alloc] init];

на

        mapImageViewEx = [[[UIImageView alloc] init] autorelease];

авто-выпуск означает, что счетчик ссылок будет уменьшен в некоторой неизвестной точке в будущем.

addSubview будет увеличивать счетчик, так что вам не нужно об этом беспокоиться.

Пока родительское представление правильно удаляется, mapImageViewEx будет освобожден.

...