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