1

問題があります。助けが必要です。私はテーブルを持っています、セルには画像付きの水平スクロールがあります。画像はインターネットからダウンロードされます。6番目の画像をダウンロードすると、アプリがクラッシュします。非同期アップロードにはhttps://github.com/rs/SDWebImageを使用します

  -(void) fastCreateImage
   {
int tempID = self.currentPageNow;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.2f * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
    if(tempID==self.currentPageNow)
    {
        NSUInteger objIdx = [self.imageViews indexOfObject: [NSNumber numberWithInt:tempID]];
        if(objIdx != NSNotFound) {
            NSLog(@"WAS CACHED!!!!!!");
        }
        else
        {
             UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 193.5f)];

    NSString *urlInString =[NSString stringWithFormat:@"%@/uploads/gallery/hotels/%@",webSite,[self.urlGarbage objectAtIndex:self.currentPageNow]];
            SDWebImageManager *manager = [SDWebImageManager sharedManager];
            [manager downloadWithURL:[NSURL URLWithString:urlInString]
                            delegate:self
                             options:0
                             success:^(UIImage *image, BOOL cached)
             {
                 myImageView.image = image;
                 [[self.views objectAtIndex:tempID] addSubview:myImageView];
                 [self.imageViews addObject:[NSNumber numberWithInt:tempID]];
                 NSLog(@"LOADED IMG");
             }
                             failure:nil];
            [myImageView release];
        }


    }
});
 }
4

1 に答える 1

0

メモリの警告が表示されているので、画像が大きすぎてメモリに収まらないと思います。width*height*4画像は(色深度に応じて)最大のメモリを使用します。各画像のこのメモリ要件を計算して、これが問題であるかどうかを確認します。

于 2012-10-10T09:38:23.703 に答える