SDWebImage的用法

SDWebImage初步使用 SDWebImage初步使用, 一个UIImageView的类目,给 Cocoa Touch 框架添加了异步下载远程图片以及管理图片缓存的功能 一个图片的异步下载器 一个内存 + 磁盘的缓存机制,并自动管理 gif动画支持 WebP格式支持 后台解压图片 确保同样地 URL 不会重复的下载多次 确保无效的 URL 不会重复的链接 确保主线程永远不会阻塞 效果拔群! 使用GCD以及要求ARC 支持64位系统 立即下载


#import "ViewController.h"

#import “one.h” //创建的模型、里面声明属性

#import "UIImageView+WebCache.h"

//#import "firstTableViewCell.h" // 使用xib的话引入这个创建的头文件


@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>


@property (nonatomic, strong) UITableView *TwoTableView;

@property (nonatomic, strong) UIView *OneView;

@property (nonatomic, strong) NSMutableArray *AllDataArray;


@end



@implementation ViewController



- (void)viewDidLoad {

    [super viewDidLoad];


    // 注册cell

   // [self.TwoTableView registerNib:[UINib nibWithNibName:@"firstTableViewCell" bundle:nil] forCellReuseIdentifier:@"cell"]; //使用自定义的cell要注册

    

    

    [self.view addSubview:self.OneView];

    [self.view addSubview:self.TwoTableView];

    

    self.TwoTableView.delegate = self;

    self.TwoTableView.dataSource = self;

    [self loadData];

}

#pragma mark 加载数据

- (void)loadData {

    self.AllDataArray = [NSMutableArray array];

    __block typeof(self) weakSelf = self;

    // 准备网址

    NSURL *url = [NSURL URLWithString:@"http://app.9nali.com/index/778?page_id=1&device=iPhone&version=1.1.2"];

    // 创建请求对象

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    // 设置请求类型

    [request setHTTPMethod:@"GET"];

    // 连接服务器

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

        

        // 判断数据是否为空 ,如果是的话就直接返回

        if (data == nil) {

            return ;

        }

        // 解析

        

        NSMutableDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

        

        NSArray *array = dict[@"list"];

        for (NSDictionary *item in array) {

            one *l = [one new];

            [l setValuesForKeysWithDictionary:item];

            

            

            [weakSelf.AllDataArray addObject:l];

            NSLog(@"%@", weakSelf.AllDataArray[0]);

            

        }

        [self.TwoTableView reloadData]; // 刷新数据

        

    }];

    

    

    

    


}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


#pragma mark 懒加载

- (UIView *)OneView {

    if (_OneView == nil) {

        _OneView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 375, 200)];

        _OneView.backgroundColor = [UIColor redColor];

    }

    return _OneView;

}


- (UITableView *)TwoTableView {

    if (_TwoTableView == nil) {

        _TwoTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 200, 375, 300) style:UITableViewStyleGrouped];

    }

    return _TwoTableView;

}



#pragma mark 实现tabllView的代理方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return _AllDataArray.count;

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];

    

    if (!cell) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];

    }

    one *l = _AllDataArray[indexPath.row];

    cell.textLabel.text = l.nickname;

//    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:l.mediumLogo] placeholderImage:[UIImage imageNamed:@"music.jpg"]];

    

    

    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:l.mediumLogo] placeholderImage:[UIImage imageNamed:@"music.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

        

    }];

    return cell;

}

/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end


Redis架构演进:从主从、哨兵到集群,如何支撑亿级流量的秒杀场景? 本文深入探讨了分布式缓存Redis的三种核心高可用模式:主从复制、哨兵模式与集群模式。以高并发的电商秒杀业务为切入点,我们分析了每种模式的优缺点和适用场景,并最终选择Redis集群模式作为最佳解决方案。文章提供了基于Spring Boot和Spring Data Redis的完整实现代码,详细展示了如何配置和使用Redis集群来应对高并发、高可用的挑战,旨在帮助开发者在实际项目中做出正确的技术选型和架构设计。 阅读详情

相关推荐

Android真机调试——ADB调试(含华为手机无法找到设备)

本文以Huawei Nova7为例。

lianqi2003的博客 7858

【iOS】SDWebImage的使用

在写知乎日报时,通过接口申请到的网络数据中,有一部分用来表示图片的数据,使用URL表示的,要再次通过URL获取到图片,才能直接使用图片(UIImage),通过SDWebImage第三方库可以很好地解决这个问题,接下来就介绍一下SDWebImage的使用方法。

2301_80095702的博客 944

如何编写 Skill 实现自动化用例生成

Skill 本质上是一组结构化的指令和工具定义,它告诉 AI 模型在特定场景下应该遵循什么流程、调用哪些工具、输出什么格式的内容。元信息:名称、描述、版本等。指令(Instructions):定义 AI 的行为准则和任务流程。工具(Tools):AI 可以调用的外部能力,如文件读写、代码执行、API 请求等。上下文(Context):预设的输入输出格式或示例。编写一个用于自动生成测试用例的 Skill,核心在于定义清晰的指令流程和输出规范。

Cesare的博客 2697

SDWebImage使用入门

为什么要用它(原文地址:http://blog.youkuaiyun.com/niu_gao)SDWebImage是一个从网站下载图片的库,它扩展了UIImageView类。UIImageView本来就可以直接从网站下载图片,但是它没有考虑对图片进行缓存,导致只要显示图片就要访问网络。而SDWebImage就解决了这个问题(当然不止这一个功能)。下载位置https://github.com/rs/SDWebI

nkmnkm的专栏 2476

告别黑盒调试:用MMSegmentation可视化工具链,从训练到评估一目了然

本文介绍了如何利用MMSegmentation的可视化工具链,从训练到评估实现语义分割模型的透明化调试。通过整合日志分析、混淆矩阵、PR曲线等工具,开发者可以快速定位模型问题,优化性能。文章详细展示了训练曲线分析、性能剖析、混淆矩阵解读和PR曲线应用等关键步骤,帮助用户告别黑盒调试,提升模型开发效率。

weixin_29100927的博客 105

深入解析ADC采样电容:从充电误差到LSB精度的关键设计

本文深入解析了ADC采样电容在模数转换中的核心作用,重点探讨了充电时间常数与采样误差的博弈关系。通过推导最小采样时间公式,揭示了精度、速度、源阻抗与内部电容之间的制约关系,并提供了从理论计算到外部驱动电路设计的实战指南,是确保ADC达到LSB精度的关键。

android的专栏 1103

SDwebImage 加入你的工程

SDwebImage放入工程中运行时就出现如下错误,之前导入外部文件也会出现这样的问题,这个是什么导致的? Undefined symbols for architecture i386:   "_OBJC_CLASS_$_MKAnnotationView", referenced from:       l_OBJC_$_CATEGORY_MKAnnotationView_$_WebC

hekunhotmail的专栏 7363

杰理SDK入门教程(二):USB升级程序

开发板升级操作指南 摘要:本文介绍了开发板程序升级的两种方式(常规升级和串口升级),重点说明了常规升级的操作步骤: 拨码设置:提供4种拨码方式(不拨/1档/2档/3档),对应不同指示灯状态和按键要求 硬件连接:强制升级工具需正确连接电脑和开发板(注意USB接口方向) 升级流程:根据拨码状态操作按键,观察指示灯变化(红灯常亮绿灯灭表示进入升级模式) 执行升级:运行SDK中的download.bat完成升级 文中还包含拨码开关说明、指示灯状态对照表以及升级原理说明,帮助用户理解升级过程。升级成功后在设备管理器可

qq_42014563的博客 1119

IOS(swift)-常见类库使用·SDWebImage使用

Web image(网络图像) 该库提供了一个支持来自Web的远程图像的UIImageView类别 它提供了: 添加网络图像和缓存管理到Cocoa Touch framework的UIImageView类别 异步图像下载 An asynchronous memory + disk image caching with automatic cache expiration ha

天道酬勤 3364

某物data魔改与变种算法还原(含加解密Py纯算)

某物data加解密、设备指纹魔改、变异、自定义加密分析与纯算还原

吴秋霖的博客 1281

深度学习驱动的股票波动率预测:LSTM和Transformer模型的实战解析

股票市场的波动率一直是金融领域关注的焦点之一。波动率预测对于风险管理、期权定价和资产配置至关重要。深度学习模型,如长短时记忆网络(LSTM)和Transformer,已经在时间序列数据分析领域取得了显著的成就。本博客将向您展示如何使用这两种深度学习模型来进行股票波动率预测,提供清晰的思路和相应的Python代码,以帮助您理解和应用这一重要任务。

斌擎科技 974

SDWebImage类库的用法

https://github.com/rs/SDWebImage#readme这个是官网的介绍很详细

weixin_33918114的博客 112

3、基于视觉的智能分拣机:原理、算法与应用

本文介绍了一种基于视觉的智能分拣系统,利用树莓派、相机模块和多种检测算法实现低成本、高精度的物体分拣。系统支持颜色、形状和尺寸三种检测方式,准确率达99%,广泛适用于制造业、农业和物流等领域。文章详细阐述了各检测算法原理、测试结果及系统优化方向,并探讨了其实际应用案例与未来发展前景。

mqtt6iot的博客 237

sdwebimage基本用法及原理

最新版SDWebImage的使用 我之前写过一篇博客,介绍缓存处理的三种方式,其中最难,最麻烦,最占内存资源的还是图片缓存,最近做的项目有大量的图片处理,还是采用了SDWebImage来处理,但是发现之前封装好的代码报错了。研究发现,是我用了新版的SDWebImage,好多方法都变了。 现在把代码贴出来,供大家参考。尤其是新手,看完这篇博客,图片缓存so easy。最后有demo...

weixin_30904593的博客 98

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SDWebImage的用法及原理

简单用法: https://www.cnblogs.com/fyongbetter/p/5629647.html 原理: https://www.cnblogs.com/zyb428/p/5260423.html 调度步骤: https://www.jianshu.com/p/be9a0a088feb

liudongshizhang的博客 301

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SDWebImage的用法 (公司面试可能会问道)

源码篇:SDWebImage FEB 7TH, 2015 | COMMENTS 源码来源:https://github.com/rs/SDWebImage 版本: 3.7 SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并缓存图片的功能。它具有以下功能: 提供UIImageView的一个分类,以支持

Baby_beautiful的专栏 1268

SDWebImage源码解读 一(基础用法)

SDWebImage是我们常用的异步图片加载库,有的小伙伴说,感觉源码读起来太费劲了,所以我们重头好好学习一下我们经常用的这个三方库。 一上来就说结构什么的容易把小白干懵逼,所以,我们先从用法开始读: 对UIImageView的网络图片操作 - (void)sd_setImageWithURL:(nullable NSURL *)urlNS_REFINED_FOR_SWIFT; ...

sinat_35914591的博客 476

SDWebImage高级用法:渐进式图片加载实现方案

你是否曾遇到过这样的场景:用户在使用iOS应用时,面对缓慢的网络环境,图片加载长时间处于空白状态,最终导致用户体验下降甚至应用流失?根据2023年App Store用户体验报告显示,图片加载延迟超过2秒会导致70%的用户放弃当前操作。渐进式图片加载技术通过在下载过程中逐步显示模糊到清晰的图片内容,可将用户感知等待时间减少60%,显著提升应用交互体验。 本文将系统讲解如何基于SDWebImage实...

gitblog_00060的博客 951

SDWebImage高级用法:自定义加载器扩展图片源

你是否还在为SDWebImage只能加载HTTP图片而苦恼?是否需要从私有云存储、数据库或特殊协议中加载图片?本文将带你深入SDWebImage的加载器架构,通过6个实战案例和完整代码,教你如何构建自定义加载器,彻底打破图片源的限制。读完本文,你将掌握: - 自定义加载器的核心协议与生命周期 - 多源图片加载的优先级管理策略 - 第三方SDK集成(如阿里云OSS、Firebase Storage...

gitblog_00533的博客 703

iOS开发 SDWebImage中那些好用的方法

http://www.wugaojun.com/blog/2015/06/20/sdwebimagezhong-na-xie-hao-yong-de-fang-fa/ SDWebImage是iOS中一款处理图片的框架, 使用它提供的方法, 一句话就能让UIImageView自动去加载并显示网络图片。特别是在UITableViewCell中有UIImageView需要显示来自网

jijiji000111的专栏 1151

SDWebImage高级用法:自定义编解码器(Coder)支持新格式

你是否遇到过这些问题?集成了SDWebImage却无法加载团队自研的加密图片格式,尝试显示最新AVIF格式时只能看到空白,或者需要对图片进行特殊预处理才能展示。作为iOS/macOS开发中最流行的图片加载框架,SDWebImage的默认编解码器(Coder)仅支持常见格式,面对业务定制化需求时往往束手无策。 本文将系统讲解如何通过自定义编解码器扩展SDWebImage的格式支持能力,读完后你将掌...

gitblog_01147的博客 1023

你真的会用SDWebImage?

SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高。但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage。 使用场景:自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图。如下图样例: 图中显示的图片符合根据网络状态下载要求 由于要监听网络状...

avrpfdc9804的博客 114

SDWebImage 使用指南:从基础到高级应用

SDWebImage 是一个强大的 iOS 图像加载和缓存库,它提供了简单易用的 API 来异步下载和缓存网络图片。这个库特别适合在 UITableView 或 UICollectionView 中加载大量图片的场景,能显著提升应用的性能和用户体验。 ## 二、基础用法:在 UITableView 中使用 ### 2.1 基本图片加载 在 UITableView 的 cellForRowAt...

gitblog_01169的博客 669

SDWebImage使用

下载: https://github.com/rs/SDWebImage   导入: 将SDWebImage文件夹拖到项目 add ImageIO.framework add MapKit.framework SDWebImage托管在github上。https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自

Black_House的专栏 497

SDWebImage源代码梳理4#介绍现有代码的几种用法

用法示例: BJCAImageView作为UIImageView的替代 最常见的用法是和UITableView的结合使用: - 在Interface Builder中将UIImageView作为UITableViewCell的子视图; - 在标识面板中,将类名设置成BJCAWebImageView; - 从bundle中设置一个图片作为占位图; - 在tableview:cellForRowAtIndexPath:方法中,把要下载图片的url通过调用setImageWithURL方法传进去, 所

run_in_road的博客 157

「OC」SDWebimage的学习

这是SD库之中的框架之中的内容和直接为表层的 UIKit框架提供接口负责处理和协调和, 并与 UIKit层进行交互。真正执行下载请求;最底层的两个类为高层抽象提供支持。

aa2002aa的博客 736
上一篇: AFNetWorking的用法
下一篇: CocoaPods的安装和使用方法
Magical_master
博客等级 码龄11年 8粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值