[英]App getting crash in background image loading iphone
我有60 UIImageView's
滾動視圖。 這些圖像視圖中顯示的圖像來自url,而url則來自網絡服務。 當用戶滾動到底部時,我將調用Webservice並獲取新的60個URL 。 獲取網址后,我正在利用相同的UIImageView's
來顯示圖像。 以下是我顯示圖像的代碼。
for (UIView *viewSel in [scrlView subviews]) {
NSString *strImgUrl = [arrImgURL valueForKey:@"url"];
if ([viewSel isKindOfClass:[UIImageView class]]) {
UIImageView *imgView = (UIImageView *)viewSel;
[imgView setImage:[UIImage imageNamed:@"loading432x520.png"]];
NSMutableArray *arr = [[NSMutableArray alloc] init];
[arr addObject:[NSString stringWithFormat:@"%@",strImgUrl]];
[arr addObject:imgView];
[self performSelectorInBackground:@selector(loadImageInBackground:) withObject:arr];
[arr release];
}
}
- (void) loadImageInBackground:(NSMutableArray *)arr {
NSLog(@"loadImage");
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSData *imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[arr objectAtIndex:0]]];
UIImage *img = [[UIImage alloc] initWithData:imgData];
if (img != nil) {
[arr addObject:img];
}
else{
[arr addObject:[UIImage imageNamed:@"no-image432x520.png"]];
}
[img release];
[self performSelectorOnMainThread:@selector(assignImageToImageView:) withObject:arr waitUntilDone:YES];
[pool release];
}
- (void) assignImageToImageView:(NSMutableArray *)arr{
NSLog(@"assignImage");
UIImageView *imgView = [arr objectAtIndex:1];
imgView.image = [arr objectAtIndex:2];
}
該代碼適合第一次使用。 但是,當我獲得新的網址時,它會工作一段時間或崩潰。 我不知道為什么它會崩潰。 我想停止那場崩潰。 如果您沒有回答我的問題,請告訴我。 請幫我。 提前致謝。 有效答案將不勝感激。
謝謝大家對我的問題給予完整的評論。 我得到了錯誤。 將內存分配給uiimageview時,我將CALayer添加到uiimageview中。 我刪除了CALayer代碼,它可以正常運行。 Nikita的評論可幫助我找到我的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.