簡體   English   中英

應用程序在加載iPhone的背景圖片時崩潰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM