我正在使用AFnetwroking UIImageView + AFNetworking.h在我的imageview中为UITabelviw和UICollectionview提供图像
我使用的代码:
NSString *str = [NSString stringWithFormat:@"http://www.hdwallpapers.in/walls/lovely_roses_hq-wide.jpg"];
NSURL *imgrl =[NSURL URLWithString:str];
NSLog(@"ImageMB url %@",imgrl);
[cell.profilePic setImageWithURL:imgrl placeholderImage:[UIImage imageNamed:@"default.png"]];
我在应用程序中使用此代码在UITableview和UICollectionview中显示图像。我的应用程序正在崩溃并显示“由于内存压力而终止。”
请解决我的问题。
由于 拉姆亚
答案 0 :(得分:0)
假设您使用默认的sharedImageCache,则不应该有内存警告。
+ (id <AFImageCache>)sharedImageCache {
static AFImageCache *_af_defaultImageCache = nil;
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
_af_defaultImageCache = [[AFImageCache alloc] init];
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidReceiveMemoryWarningNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * __unused notification) {
[_af_defaultImageCache removeAllObjects];
}];
});
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgnu"
return objc_getAssociatedObject(self, @selector(sharedImageCache)) ?: _af_defaultImageCache;
#pragma clang diagnostic pop
}
正如您所看到的,它会监视内存警告。我的猜测是,你每次填充它时可能会在你的细胞中添加一个新的imageview吗?
在我们进一步提供帮助之前,我们需要查看更多代码。
答案 1 :(得分:0)
我没有使用任何sharedImageCache,并且单元格没有重新分配内存。它已经在uicollectionvew自定义单元格中创建,并通过cell.profilepic使用它。
我创建了一个UICollectionView缺陷布局
通过使用asepct raito,我调整了图像大小。
CGSize CGSizeAspectFit(CGSize aspectRatio, CGSize boundingSize)
{
float mW = boundingSize.width / aspectRatio.width;
float mH = boundingSize.height / aspectRatio.height;
if( mH < mW )
boundingSize.width = boundingSize.height / aspectRatio.height * aspectRatio.width;
else if( mW < mH )
boundingSize.height = boundingSize.width / aspectRatio.width * aspectRatio.height;
return boundingSize;
}
计算尺寸并为其创建Cell。并使用以下代码显示图像:
Photo *photoData = [self.photosListArray objectAtIndex:indexPath.item];
//[cell.displayImage setImageWithURL:[photoData photoURL]];
// Here we use the new provided setImageWithURL: method to load the web image
NSLog(@"photo url %@",[photoData photoURL]);
[cell.displayImage setImageWithURL:[photoData photoURL]
placeholderImage:nil];
//user profile pic
NSString *str = [NSString stringWithFormat:@"http://www.hdwallpapers.in/walls/%@",photoData.userProfilePic];
NSURL *imgrl =[NSURL URLWithString:str];
NSLog(@"Image url %@",imgrl);
[cell.userProfilePic setImageWithURL:imgrl placeholderImage:[UIImage imageNamed:@"default_profilepic.png"]
这是我的代码,请建议我任何可能的答案,以避免记忆压力。
由于