objective-c - 如何从服务器异步检索图像

标签 objective-c

我有一个带有一些图片 url 的 NSMutableArray。图片的大小在 12KB 到 6MB 之间。我使用 AsycImageView 类并实现,但是当大图像下载应用程序崩溃时,我在该类中为 maxsize 设置了 6*1024*1024 (6MB),将时间间隔从 60.0 秒增加到 180.o 秒,但没有用。我收到错误消息“收到内存警告”,当应用程序崩溃时自动从设备中删除连接,但在模拟器中没有崩溃。

最佳答案

使用 GCD 进行延迟加载

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
 dispatch_async(queue, ^{
       NSString *strURL = url here;
       NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
       UIImage *image = nil;
       if(data)
        image = [UIImage imageWithData:data];
      dispatch_sync(dispatch_get_main_queue(), ^{
           //now use image in image View  or anywhere according to your requirement.
           if(image)
             yourImgView = image
      });
 });

关于objective-c - 如何从服务器异步检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16352337/

相关文章:

ios - 如何通过 Objective C 中的类别类中的参数解析方法调用?

objective-c - 有条件的 NSLog,不降低性能

objective-c - 合成的ivars存储在哪里?

ios - 尝试将 uiimageview 图像保存到变量中

iphone - 如何在我的 iPhone 应用程序中使用 NSError?

ios - 更改特定行选择上的 UITableView 所有行的标签颜色

objective-c - 硬件设备 Controller 的设计模式

objective-c - 理解弱引用

Objective-C 类别 == 访问者模式?

php - iOS - 如何将数组作为参数传递给 AFNetworking (Objective-C)