2016-04-07 1 views
0

SDWebImageを使用してサーバーから画像asyncをダウンロードしています。サーバー上の画像のサイズが1772x1476ピクセルです。これらの画像をUICollectionViewに表示しています。私はいくつかのrun.Some時に画像が最初にダウンロードされ、私はコレクションのビューを上下にスクロールするときに発生するいくつかのrun.Some回後にメモリの警告とアプリケーションのクラッシュを取得しています。ここに私のコード - アプリがフルサイズの画像を表示する必要がない場合、私は画像SDWebImageを使用して大きな画像をダウンロード中にアプリケーションがクラッシュする

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 

    UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath]; 

[Mainimage sd_setImageWithURL:[NSURL URLWithString: Obj.imageYH] placeholderImage:[UIImage imageNamed:@""]]; 

    return cell; 
} 

enter image description here

+0

このエラーは、画像のダウンロードが原因ではないことを強く信じています。 – Hemang

+0

それから何が原因ですか? – Krish

+1

こんにちはクリシュ、もう一度私です。計算をしましょう。 1772 x 1476ピクセルの画像は、ダウンロード中にかなりのRAMを消費しました。使用されたRAMは1772×1476×24(ビット)/8 = 7846418バイト= 7662Kb = 7MBである。デバイスにはRAMが限られているため、メモリを使い果たしてしまうような巨大な写真を読み込まないでください。サーバー側でイメージのサイズを変更するか、複数の巨大な写真を同時にロードしないでください。 Xcodeメモリモニタで動作を確認できます。 – Raptor

答えて

0

以下のように私のXコードに警告を取得しています

あり、それはいつもですそれをスケールダウンして表示することをお勧めします。ここでは何をすべきかの例を示します。

SDWebImageManager *manager = [SDWebImageManager sharedManager]; 
[manager downloadWithURL:url delegate:self options:0 success:^(UIImage *image) 
{ 
    //Scale down the image here and then set to your view. 
} 

メモリの問題を軽減するのに役立ちます。

+0

こんにちはルチラ・ランダナ? – Krish

+0

こんにちは@Krish。それは動作しませんか? –

+0

いいえ、私は仲間を覚えている作業していない? – Krish

0
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 

      UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath]; 

    [Mainimage setImageWithURL:[NSURL URLWithString: Obj.imageYH] placeholderImage:[UIImage imageNamed:@""]]; 

      return cell; 
}   

試してみてください。この

+0

私のコードとurコードとの違いは何ですか? – Krish

+0

それは私が私のコードでこれを実装していたと私は – Krish

+0

も廃止予定された:[self.imgArray objectAtIndex:インデックス] placeholderImage:ゼロオプション:SDWebImageProgressiveDownload が完了:^( UIImage * image、 NSError *エラー、 SDImageCacheType cacheType) { } usingActivityIndi​​catorStyle:UIActivityIndi​​catorViewStyleWhite]; – Shreyank

1

あなたが使用することができます。

[SDImageCache sharedImageCache] .config.shouldDecompressImages = NO; [[SDWebImageDownloader sharedDownloader] setShouldDecompressImages:NO];

バージョン4.0-beta

関連する問題