Ios 下载图像制作并在下载后更新表视图

Ios 下载图像制作并在下载后更新表视图,ios,asynchronous,Ios,Asynchronous,我正在开发一个图像下载应用程序。图像大小不同。我想在下载图像时下载图像异步并更新表视图。还需要按时间间隔清除缓存 请建议我如何实施。我看过SDwebimagecache,但它在图像下载时崩溃。我希望它能帮助您。我与我的所有(ARC)项目一起使用 使用: 添加viewcontroller:#导入“UIImageView+WebCache.h” 您需要将MapKit和ImageIO添加到项目中。如果你没有添加 为此: 单击Xcode中项目导航器顶部的项目 选择“构建阶段”选项卡 打开“将二进制文件与

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


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

我希望它能帮助您。我与我的所有(ARC)项目一起使用

使用:

添加viewcontroller:
#导入“UIImageView+WebCache.h”

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

为此:

单击Xcode中项目导航器顶部的项目

选择“构建阶段”选项卡

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

单击“+


添加MapKit和ImageIO框架。

我使用了核心数据和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];
    }
试试这个
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];
    }