下载后下载图像制作和更新表视图

时间:2013-11-26 12:04:11

标签: ios asynchronous

我正在开发一款图片下载应用。图像大小不同。我想在图像下载时下载图像异步并更新表视图。还需要在一个时间间隔内清除缓存。

请建议我如何实施。我见过SDwebimagecache但它在图像下载时崩溃了。

2 个答案:

答案 0 :(得分:0)

我希望它可以帮到你。我将SDWebImage用于我的所有(ARC)项目。

使用:

添加你的viewcontroller:#import "UIImageView+WebCache.h"

   [yourImageView setImageWithURL:[NSURL URLWithString:@"ImageUrl"]];

您需要将 MapKit ImageIO 添加到项目中。如果你没有添加

要做到这一点:

单击Xco​​de

中项目导航器顶部的项目

选择“构建阶段”标签。

打开“链接二进制文件库”框。

点击“ + ”。

添加 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];
    }