我正在处理一些图像时收到此警告。我该怎么办?
谢谢!
- (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;
}
谢谢!
答案 0 :(得分:2)
首先只加载您需要显示的图像。只在需要时加载其余部分。一旦图像消失,就会将它们从记忆中释放出来。
似乎你忘记发布许多变量,即mapURL,imageData,image bkgColor。