收到“收到的内存警告”。级别= 1”; [英] Getting "Received memory warning. Level = 1"

查看:56
本文介绍了收到“收到的内存警告”。级别= 1”;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理某些图像时收到此警告。我该怎么办?

Im getting this warning when im dealing with some images. What can i do?

谢谢!

        - (void)viewDidLoad {


            // Insere a view de thumbnails das paginas

            [self.view addSubview:pageThumbnails];
            self.pageThumbnails.frame = CGRectMake(0, 1024, 768, 210);

            // Paginas

            self.galeria =[[NSMutableArray alloc]init];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"001" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"002" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"003" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"004" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"005" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"006" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"007" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"008" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"009" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"010" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"011" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"012" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"013" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"014" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"015" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"016" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"017" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"018" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"019" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"020" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"021" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"022" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"023" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"024" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"025" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"026" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"027" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"028" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"029" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"030" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"031" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"032" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"033" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"034" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"035" ofType:@"jpg"]];
            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"036" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"037" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"038" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"039" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"040" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"041" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"042" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"043" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"044" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"045" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"046" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"047" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"048" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"049" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"050" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"051" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"052" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"053" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"054" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"055" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"056" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"057" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"058" ofType:@"jpg"]];

            [self.galeria addObject:[[NSBundle mainBundle] pathForResource:@"059" ofType:@"jpg"]];







            //Thumbs

            self.thumbsList =[[NSMutableArray alloc]init];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"001_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"002_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"003_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"004_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"005_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"006_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"007_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"008_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"009_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"010_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"011_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"012_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"013_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"014_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"015_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"016_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"017_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"018_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"019_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"020_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"021_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"022_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"023_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"024_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"025_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"026_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"027_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"028_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"029_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"030_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"031_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"032_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"033_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"034_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"035_thumb" ofType:@"jpg"]];\

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"036_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"037_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"038_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"039_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"040_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"041_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"042_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"043_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"044_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"045_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"046_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"047_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"048_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"049_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"050_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"051_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"052_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"053_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"054_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"055_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"056_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"057_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"058_thumb" ofType:@"jpg"]];

            [self.thumbsList addObject:[[NSBundle mainBundle] pathForResource:@"059_thumb" ofType:@"jpg"]];

            kNumberOfPages = [galeria count];

            // Comeca a contagem de thumbs de acordo com a array principal

            NSInteger thumbs = 0;

            while (thumbs < kNumberOfPages) {

                float e = 150*thumbs;
                thumbs++;

                // Cria o botao e a view

                UIView *thumbItemView = [[UIView alloc] init];
                UIButton *mathumb = [UIButton buttonWithType:UIButtonTypeCustom];

                NSString *mapURL = [[NSString alloc] initWithFormat:@"%@", [self.thumbsList objectAtIndex:thumbs-1]];

                NSData* imageData = [[NSData alloc]initWithContentsOfFile:mapURL];

                //NSData* imageData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:mapURL]];


                UIImage* image = [[UIImage alloc] initWithData:imageData];
                [mathumb setImage:image forState:UIControlStateNormal];


                // Seta a view da thumb
                thumbItemView.frame = CGRectMake(e, 0, 122, 122);

                UIColor *bkgColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"ThumbItemBackground.png"]];
                thumbItemView.backgroundColor = bkgColor;
                thumbItemView.opaque = NO;

                // Seta o tamanho do botao e insere ele na view
                mathumb.frame = CGRectMake(10, 10, 100, 100);
                [thumbItemView addSubview:mathumb];

                // Adiciona o resultado final das thumbs

                [thumbScroll addSubview:thumbItemView];

                // Tagea cada botao
                mathumb.tag = thumbs;

                // Adiciona a funcao neles de pegar a pagina
                [mathumb addTarget:self action:@selector(goToPage:) forControlEvents:(UIControlEvents)UIControlEventTouchDown];

                [thumbItemView release];

            }

            float s = thumbs*148;

            thumbScroll.contentSize = CGSizeMake(s, 50);
            thumbScroll.showsVerticalScrollIndicator = NO;
            thumbScroll.scrollsToTop = NO;

            //

            // view controllers are created lazily
            // in the meantime, load the array with placeholders which will be replaced on demand
            NSMutableArray *controllers = [[NSMutableArray alloc] init];
            for (unsigned i = 0; i < kNumberOfPages; i++) {
                [controllers addObject:[NSNull null]];
            }
            self.viewControllers = controllers;
            [controllers release];

            // a page is the width of the scroll view
            scrollView.pagingEnabled = YES;
            scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, scrollView.frame.size.height);
            scrollView.showsHorizontalScrollIndicator = NO;
            scrollView.showsVerticalScrollIndicator = NO;
            scrollView.scrollsToTop = NO;
            scrollView.delegate = self;

            pageControl.numberOfPages = kNumberOfPages;
            pageControl.currentPage = 0;

            NSString *qualPagina = [[NSString alloc] initWithFormat:@"Página %i de %i", pageControl.currentPage + 1, kNumberOfPages];
            [curentPageLabel setText:qualPagina];


            // Carrega as paginas

            [self loadScrollViewWithPage:0];
            [self loadScrollViewWithPage:1];

        }

        - (void)loadScrollViewWithPage:(int)page {
            if (page < 0) return;
            if (page >= kNumberOfPages) return;

            // replace the placeholder if necessary
            PageViewController *controller = [viewControllers objectAtIndex:page];
            if ((NSNull *)controller == [NSNull null]) {
                controller = [[PageViewController alloc] initWithPageNumber:page];
                [viewControllers replaceObjectAtIndex:page withObject:controller];

                // Seta a array de cada controller com os enderecos desta.

                controller.enderecos = self.galeria;

                [controller release];
            }

            // add the controller's view to the scroll view
            if (nil == controller.view.superview) {
                CGRect frame = scrollView.frame;
                frame.origin.x = frame.size.width * page;
                frame.origin.y = 0;
                controller.view.frame = frame;
                [scrollView addSubview:controller.view];
            }
        }

        - (void)scrollViewDidScroll:(UIScrollView *)sender {
            // We don't want a "feedback loop" between the UIPageControl and the scroll delegate in
            // which a scroll event generated from the user hitting the page control triggers updates from
            // the delegate method. We use a boolean to disable the delegate logic when the page control is used.
            if (pageControlUsed) {
                // do nothing - the scroll was initiated from the page control, not the user dragging
                return;

            }

            // Switch the indicator when more than 50% of the previous/next page is visible
            CGFloat pageWidth = scrollView.frame.size.width;
            int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
            pageControl.currentPage = page;


            // Arruma as paginas

            NSString *qlPage = [[NSString alloc] initWithFormat:@"Página %i de %i", page+1, kNumberOfPages];
            curentPageLabel.text = qlPage;
            //NSLog(@"QL Q TA %@", qlAtual.text);

            // load the visible page and the page on either side of it (to avoid flashes when the user starts scrolling)
            [self loadScrollViewWithPage:page - 1];
            [self loadScrollViewWithPage:page];
            [self loadScrollViewWithPage:page + 1];

            // A possible optimization would be to unload the views+controllers which are no longer visible

        }

        -  (void)goToPage:(id)sender {


            UIButton* btn = (UIButton *) sender;
            NSLog(@"Deu ein!, o sender eh %i", btn.tag);

            float t = btn.tag-1;
            float c = 768*t;

            scrollView.contentOffset = CGPointMake(c, 0);

            NSString *qualPagina = [[NSString alloc] initWithFormat:@"Página %i de %i", btn.tag, kNumberOfPages];
            [curentPageLabel setText:qualPagina];

        }

        // At the begin of scroll dragging, reset the boolean used when scrolls originate from the UIPageControl
        - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
            pageControlUsed = NO;
            [self closePanel];

        }

        // At the end of scroll animation, reset the boolean used when scrolls originate from the UIPageControl
        - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
            pageControlUsed = NO;

            //NSString *qlPage = [[NSString alloc] initWithFormat:@"%@ de %i", self.qlAtual.text, kNumberOfPages];

            //currentPageLabel.text = qlPage;

            //[qlPage release];

        }

        - (IBAction)changePage:(id)sender {
            int page = pageControl.currentPage;

            // load the visible page and the page on either side of it (to avoid flashes when the user starts scrolling)
            [self loadScrollViewWithPage:page - 1];
            [self loadScrollViewWithPage:page];
            [self loadScrollViewWithPage:page + 1];

            // update the scroll view to the appropriate page
            CGRect frame = scrollView.frame;
            frame.origin.x = frame.size.width * page;
            frame.origin.y = 0;
            [scrollView scrollRectToVisible:frame animated:YES];

            // Set the boolean used when scrolls originate from the UIPageControl. See scrollViewDidScroll: above.
            pageControlUsed = YES;

        }

感谢!

推荐答案

首先仅加载您需要显示的图像。仅在需要时才加载其余的。一旦图像消失,它们就会从内存中释放出来。

First of all only load images that you need to show. Load the rest of them only when they are needed. As soon as images dissapear release them from memory.

似乎您也忘记了释放许多变量,例如mapURL,imageData,图像bkgColor。

Also it seems that you forgot to release many variables i.e. mapURL, imageData, image bkgColor.

这篇关于收到“收到的内存警告”。级别= 1”;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆