в то время как изменение ориентации памяти увеличивается - PullRequest
0 голосов
/ 21 февраля 2012

извините, что задаю основной вопрос. В моем viewcontroller увеличивается память, когда я поворачиваю свое устройство, чтобы предотвратить изменение всех моих IBOutlets с помощью @property и @synthesize, даже если они также не работают, мое распределение достигает максимума, я не знаю, что ошибка, которую я сделал в методе didrotate. Я предоставил свой код ниже. Здесь я просто изменяю свои изображения и рамки для своих IBOutlets. Есть ли какая-либо ошибка в приведенном ниже коде?

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
            if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
                for(UIImageView *thumbImage in [tableSupportView subviews]){
                        UIImage *tempImage=[bookListDataSource bookAtIndex:thumbnilIndex].titleImage;
                        CGFloat thumbnilHeight=95*((float) tempImage.size.height/tempImage.size.width);
                        thumbImage.frame=CGRectMake(thumbnilIndex*125, (205-thumbnilHeight)/2, 95, thumbnilHeight);
                        thumbnilIndex++;
                }
                self.myoutlets.frame=cgrect(frames according to criteria);
                NSString *detailImagePath=[[NSBundle mainBundle] pathForResource:@"details_bg_nb" ofType:@"png"];
                UIImage *detailImage=[[UIImage alloc] initWithContentsOfFile:detailImagePath];
                UIColor *bookDetailViewColor=[[UIColor alloc] initWithPatternImage:detailImage];
                self.bookDetailView.backgroundColor=bookDetailViewColor;
                [bookDetailViewColor release];
                [detailImage release];
                NSString *listBGImagePath=[[NSBundle mainBundle] pathForResource:@"list_bg_nb" ofType:@"png"];
                UIImage *listBGImage=[[UIImage alloc] initWithContentsOfFile:listBGImagePath];
                UIColor *listHeaderContainerViewColor=[[UIColor alloc] initWithPatternImage:listBGImage];
                self.listHeaderContainerView.backgroundColor=listHeaderContainerViewColor;
                [listHeaderContainerViewColor release];
                [listBGImagePath release];

                NSString *listBandPath=[[NSBundle mainBundle] pathForResource:@"listband_potrait" ofType:@"png"];
                UIImage *listBand=[[UIImage alloc] initWithContentsOfFile:listBandPath];
                self.categoryBrandingImageView.image=listBand;
                [listBand release];
            }else {
                NSUInteger thumbnilIndex=0;
                NSUInteger numberOfBooks=[bookListDataSource numberOfBooks];
                for(UIImageView *thumbImage in [tableSupportView subviews]){
                        UIImage *tempImage=[bookListDataSource bookAtIndex:thumbnilIndex].titleImage;
                        CGFloat thumbnilHeight=85*((float) tempImage.size.height/tempImage.size.width);
                        thumbImage.frame=CGRectMake(thumbnilIndex*115, (CGRectGetHeight(tableSupportView.frame)-thumbnilHeight)/2.0, 85, thumbnilHeight);
                        thumbnilIndex++;
                    }
                }
            self.myoutlets.frame=cgrectmake(my custom frame);
                NSString *detailImagePath=[[NSBundle mainBundle] pathForResource:@"landscape_details_bg_nb" ofType:@"png"];
                UIImage *detailImage=[[UIImage alloc] initWithContentsOfFile:detailImagePath];
                UIColor *bookDetailViewColor=[[UIColor alloc] initWithPatternImage:detailImage];
                self.bookDetailView.backgroundColor=bookDetailViewColor;
                [bookDetailViewColor release];
                [detailImage release];

                NSString *listBGImagePath=[[NSBundle mainBundle] pathForResource:@"landscape_list_bg_nb" ofType:@"png"];
                UIImage *listBGImage=[[UIImage alloc] initWithContentsOfFile:listBGImagePath];
                UIColor *listHeaderContainerViewColor=[[UIColor alloc] initWithPatternImage:listBGImage];
                self.listHeaderContainerView.backgroundColor=listHeaderContainerViewColor;
                [listHeaderContainerViewColor release];
                [listBGImagePath release];

                NSString *listBandPath=[[NSBundle mainBundle] pathForResource:@"listband_landscape" ofType:@"png"];
                UIImage *listBand=[[UIImage alloc] initWithContentsOfFile:listBandPath];
                self.categoryBrandingImageView.image=listBand;
                [listBand release];
            }
            self.bookInformation.backgroundColor=[UIColor clearColor];
            self.bookDescrption.backgroundColor=[UIColor clearColor];
        }
    }

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

1 Ответ

1 голос
/ 21 февраля 2012

В этой части кода у вас есть ошибка -

NSString *listBGImagePath=[[NSBundle mainBundle] pathForResource:@"landscape_list_bg_nb" ofType:@"png"];
UIImage *listBGImage=[[UIImage alloc] initWithContentsOfFile:listBGImagePath];
UIColor *listHeaderContainerViewColor=[[UIColor alloc] initWithPatternImage:listBGImage];
self.listHeaderContainerView.backgroundColor=listHeaderContainerViewColor;
[listHeaderContainerViewColor release];
[listBGImagePath release];

Вы должны выпустить listBGImage вместо listBGImagePath

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