我正在开发一款图片下载应用。图像大小不同。我想在图像下载时下载图像异步并更新表视图。还需要在一个时间间隔内清除缓存。
请建议我如何实施。我见过SDwebimagecache但它在图像下载时崩溃了。
答案 0 :(得分:0)
我希望它可以帮到你。我将SDWebImage用于我的所有(ARC)项目。
使用:
添加你的viewcontroller:#import "UIImageView+WebCache.h"
[yourImageView setImageWithURL:[NSURL URLWithString:@"ImageUrl"]];
您需要将 MapKit 和 ImageIO 添加到项目中。如果你没有添加
要做到这一点:
单击Xcode
中项目导航器顶部的项目选择“构建阶段”标签。
打开“链接二进制文件库”框。
点击“ + ”。
添加 MapKit和ImageIO 框架。
答案 1 :(得分:0)
我已经使用核心数据和AFNetworking来实现同样的目的,在我的代码下面找到
UserBasicInfo* userBasicInfo = [[UserBasicInfo findByAttribute:@"userId" withValue:@(chatUser)] objectAtIndex:0];;
if (userBasicInfo.userImage == nil) {
__weak LGMessageBoxCell *weakCell = cell;
[cell.userImage setImageWithURLRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:userBasicInfo.imageUrl]]
placeholderImage:[UIImage imageNamed:@"facebook-no-user.png"]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){
weakCell.userImage.image = image;
[weakCell setNeedsLayout];
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
UserBasicInfo* userBasicInfo = [[UserBasicInfo findByAttribute:@"userId" withValue:@(chatUser) inContext:localContext] objectAtIndex:0];
userBasicInfo.userImage = UIImagePNGRepresentation(image);
} completion:^(BOOL success, NSError *error) {
NSLog(@"%@",[error localizedDescription]);
}];
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){
}];
} else {
cell.userImage.image = [UIImage imageWithData:userBasicInfo.userImage];
}