Я использую SDWebImage
для asynchrony для загрузки изображений с сервера. Я протестировал приложение в iPhone 5 и 5 с iOS 8.1
и отлично работал, никаких предупреждений о памяти вообще. Но я получил сборку для клиента (используя iPhone 4), и он сталкивается с некоторым сбоем при загрузке изображений, к сожалению, у меня нет iPhone 4s, поэтому не может решить проблему. Я тестировал в инструментах с iPhone5, и вот скриншоты после нескольких прогонов. А вот мой код для загрузки изображенияОшибка приложения в iPhone4s при загрузке изображений
-(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;
}];
}
я очистил память в didRecdeiveMemoryWarnig
методы
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
NSLog(@"memory warning received in voucher");
[[SDImageCache sharedImageCache] clearMemory];
[[SDImageCache sharedImageCache] cleanDisk];
[[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];
}
Но он по-прежнему падает в iPhone 4s.Can любой один Guid мне, что делать?
Добавить Crashlytics для вашего тестового приложения и собрать отчет о сбое, а затем проанализировать крах будет самым устойчивым решением. –
Я пытаюсь войти в систему, но он говорит «вы в списке», у меня нет учетной записи Crashlytics и вы пытаетесь создать, но не получили приглашения. – Blios
Возможно, это поможет решить проблему памяти: http://stackoverflow.com/questions/26921227/table-view-images-never-being-released/26925176#26925176 – Kampai