Я использую SDWebImage
для загрузки изображения async с сервера. Некоторые изображения на сервере имеют размер от 1,5 до 2. MB.I'm показ этих изображений на UICollectionView
. Я получаю предупреждение о всплывании памяти и сбое приложений после нескольких запусков. Иногда это происходит, когда изображения загружаются в первый раз и некоторое время, когда я просматриваю просмотр коллекции вверх и вниз. Вот мой код-Ошибка приложения при загрузке больших изображений с помощью SDWebImage?
-(void)setImageWithUrl:(NSURL*)imgurl onImageView:(UIImageView*)image prograssive:(BOOL)progressive
{
__block UIActivityIndicatorView *activityIndicator;
__weak UIImageView *weakImageView = image;
SDWebImageOptions opt;
if (progressive) {
opt = SDWebImageProgressiveDownload;
}
else
opt = SDWebImageRetryFailed;
[image sd_setImageWithURL:imgurl placeholderImage:[UIImage imageNamed:@"default_image"] options:opt progress:^(NSInteger receivedSize, NSInteger expectedSize)
{
if (!activityIndicator)
{
[weakImageView addSubview:activityIndicator = [UIActivityIndicatorView.alloc initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]];
activityIndicator.center = CGPointMake(weakImageView.frame.size.width /2, weakImageView.frame.size.height/2);
// activityIndicator.center = weakImageView.center;
[activityIndicator setBackgroundColor:[UIColor clearColor]];
[activityIndicator startAnimating];
}
}
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
[activityIndicator removeFromSuperview];
activityIndicator = nil;
}];
}
и AppDelegate
-
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
[[SDImageCache sharedImageCache] clearMemory];
[[SDImageCache sharedImageCache] cleanDisk];
[[SDImageCache sharedImageCache] clearDisk];
[[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];
}
Пожалуйста, не изображения высокого разрешения (ширина более 3000 пикселей) .Для примера один из них имеет 4256 * 2832 и размер 979KB производят предупреждение о памяти. Любая помощь или предложение будут оценены. EDIT: - мое приложение убивается из-за давления памяти, но только на iPhone 4 и более низкие версии (отлично работает на iPhone 5 и выше). Когда большое изображение загружается (или полная загрузка), я получил внезапную память шип (от ~ 25 мб до ~ 90 мб) и сбоев приложений. Любое предложение, что делать?
Это намного проще, если вы обнаружите, где он сбой, и если вы можете опубликовать информацию о возвращении от отладчика, когда вы столкнулись с крахом (журнал сбоев с трассировкой стека) – Volker
Нет журнала сбоев, только в окне Xcode появляется окно с сообщением об ошибке приложение неожиданно прекратилось (iOS закрыл приложение из-за высокой памяти) – Bharat
Я публикую эту проблему на странице SDWebImage Github. Чтобы привлечь внимание от своего разработчика. –