「OC」SDWebimage的学习

【多线程-第四天-自己模拟SDWebImage的下载图片功能-看SDWebImage的Demo Objective-C语言】 阅读详情

「OC」SDWebimage的学习

前言

在知乎日报这个项目之中,我在很多情况下都会进行图片资源的网络申请。通过上网搜索我了解到了SDWebimage这个功能丰富的第三方库,进行了较为浅层的学习。因为SDWebimage这个库之中的相关内容还是较为多且复杂的,我个人的能力只能够进行简单的运用

简介

88f6421dd722b6416f967f03b5edf32d

这是SD库之中的框架之中的内容

  • UIImageView+WebCache和UIButton+WebCache直接为表层的 UIKit框架提供接口
  • SDWebImageManger负责处理和协调SDWebImageDownloader和SDWebImageCache, 并与 UIKit层进行交互。
  • SDWebImageDownloaderOperation真正执行下载请求;最底层的两个类为高层抽象提供支持。

使用

这里仅仅介绍SDWebImage之中最简单的用法,也就是我在项目之中使用的相关方法

[topDisplayView.imageView sd_setImageWithURL:[NSURL URLWithString:story.image]];

处理下载进度和完成事件

可以添加下载进度和完成的回调:

[imageView sd_setImageWithURL:imageURL
             placeholderImage:[UIImage imageNamed:@"placeholder"]
                      options:SDWebImageProgressiveLoad
                     progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
                         // 这里可以更新进度条
                         NSLog(@"下载进度:%f", (CGFloat)receivedSize / expectedSize);
                     }
                    completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
                        if (error) {
                            NSLog(@"图片加载失败: %@", error.localizedDescription);
                        } else {
                            NSLog(@"图片加载成功并缓存!");
                        }
                    }];

清除缓存

SDWebImage 默认会缓存图片,减小网络流量。如果需要清理缓存,可以使用 SDImageCache:

// 清理内存缓存
[[SDImageCache sharedImageCache] clearMemory];

// 清理磁盘缓存
[[SDImageCache sharedImageCache] clearDiskOnCompletion:^{
    NSLog(@"磁盘缓存已清除");
}];

设置缓存策略

我们可以通过 SDWebImageOptions 来控制缓存策略,比如使用 SDWebImageRefreshCached 强制刷新图片:

[imageView sd_setImageWithURL:imageURL placeholderImage:[UIImage imageNamed:@"placeholder"] options:SDWebImageRefreshCached];

参考文章

iOS SDWebImage详细介绍

iOS利用SDWebImage实现缓存的计算与清理 可以仅仅清理图片缓存, 也可以清理所有的缓存文件(包括图片、视频、音频等). 阅读详情

相关推荐

【多线程-第四天-SDWebImage的其他功能-显示GIF图片 Objective-C语言】

【多线程-第四天-SDWebImage的其他功能-显示GIF图片 Objective-C语言】

madoca的博客 1117

【iOS】SDWebImage的使用

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

2301_80095702的博客 944

iOS中SDWebImage指定缓存图片大小

在iOS中使用SDImageView实现缓存图片,可以自己指定缓存图片的大小

iOS SDWebImage详细介绍

在iOS的图片加载框架中,SDWebImage使用频率非常高。它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率,让我们更加专注于业务逻辑实现。本文讲解的版本为4.4.2版本。 一、SDWebImage 概论 SDWebImage是个支持异步下载与缓存的UIImageView扩展。项目主要提供了一下功能: 1.提供了一个UIImageView的category用来加载网络图片并且对

假装你是大灰狼的专栏 3832

IOS网络图片缓存类库SDWebImage

IOS网络图片缓存类库SDWebImage,部分代码有详细中文注释

深入解析Android Thermal框架:从应用层到驱动层的温度管理机制

本文深入解析Android Thermal框架的温度管理机制,从应用层到驱动层详细介绍了温度监测、热状态评估和降温策略执行的全过程。通过分层架构解析和关键组件交互,帮助开发者理解Android设备如何实现高效的温度控制,确保硬件安全并优化性能。

weixin_29303701的博客 256

iOS:SDWebImage简单使用

说明: SDWebImage是图片加载框架,能自动将图片下载并显示到UIImageView上。 一、将SDWebImage导入工程: 1.到SDWebImage GitHub上下载”SDWebImage-master”,将SDWebImage-master目录下的”SDWebImage”整个文件夹拖入工程根目录下。 2.按”Command+B”编译工程,解决报错问题,最新的会报2个类...

a526001650a的专栏 936

Python与PyCharm安装配置教程:从零搭建开发环境

编程入门的第一步是搭建开发环境,而Python解释器与IDE工具的选择常让新手困惑。Python作为解释型语言,负责将代码翻译为机器指令,而PyCharm作为集成开发环境,提供代码编辑、调试与项目管理功能,两者协同工作构成高效开发基础。环境变量PATH的配置是安装过程中的关键环节,正确处理可避免“python不是内部或外部命令”的常见错误。理解pip包管理机制,则能轻松安装第三方库并管理项目依赖。从下载官方安装包到运行第一个Hello World程序,再到利用虚拟环境隔离应用依赖,这套流程适用于Window

benben 683

OC中SDWebImage基本使用详情

SDWebImage基本使用详情

eastWind1101的博客 237

深度学习赋能胶囊内镜:AI如何实现胃肠道出血的自动检测与分割

在计算机视觉领域,图像分类与目标检测是处理医学影像分析的核心技术。其原理在于通过卷积神经网络(CNN)自动学习图像中的多层次特征表示,实现对特定目标的识别与定位。这项技术的价值在于能够将医生从海量、重复的阅片工作中解放出来,提升诊断效率与一致性,尤其在处理如胶囊内镜产生的数万张连续图像时优势显著。其应用场景广泛覆盖了医学影像的辅助诊断,例如在消化内科,对胃肠道出血的早期发现与精准定位具有重要临床意义。本文聚焦于利用深度学习模型,如U-Net和EfficientNet,构建一个能够从复杂多变的胶囊内镜图像中,

weixin_42533910的博客 377

从牛顿冷却定律到热传导方程:一维热传导方程的物理直觉与数学推导

本文从牛顿冷却定律出发,结合傅里叶热传导定律和能量守恒原理,系统推导了一维热传导方程的数学形式。通过微元分析和物理直觉,揭示了温度随时间变化与空间二阶导数之间的关系,并阐释了热扩散率α的物理意义。文章还探讨了方程的边界条件、数值解法及其在材料科学和工程中的应用,为理解热量传递提供了清晰的物理图像和数学框架。

palm99的专栏 835

【iOS】SDWebImage

在写知乎日报项目时,遇到了图片加载和通过API异步加载图片的问题,在组内成员的引导下,去学习了SDWebImage开源库。

2301_80467753的博客 1421

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

孟孟单单的博客 7万+

Swift之SDWebImage第三方框架

在学习Swift过程中,最害怕的使用了OC的第三方框架 好不容易配置成功了,却出现了意外的Bug [UIImageView setImageWithURL:]: unrecognized selector sent to instance解决办法 第一次配置的时候,因为百度了教程,所以一次性成功 结果第二次没去百度,结果悲剧了,再找之前的配置教程也找不到了 1、选中项目,右键,点击A

Francis-ChinaFeng 2618

SerDes系列之 SSC扩频时钟技术

扩频时钟,又称展频(SSC-Spread Spectrum Clocking),当前PCIE、DDR、USB等几乎所有的高速接口都支持SSC的功能。电子工程师在日常的电气测试中经常与之接触,在电磁传导和辐射发射验证过程中,经常需要使用到芯片的SSC功能,它的物理表现形式,就是信号的比特率会在一个很小的范围内浮动,多见于周期性变化的时钟信号。

一只豌豆象的博客 3439

C# 上位机程序中的数据采集与存储技术:从采集到持久化的完整解决方案

本文系统讲解C#上位机程序如何实现设备数据采集与持久化。主要内容包括:1)多种数据采集方式(串口通信、Modbus、OPC等)及代码示例;2)详细对比不同存储技术(CSV、SQLite、关系型数据库等)的优缺点;3)提供SQLite等存储实现代码;4)推荐分层系统架构(采集-缓存-存储-可视化);5)性能优化建议(多线程采集、异步存储、批量写入等)。文章强调应根据项目需求选择合适的技术方案,构建高效稳定的数据采集存储闭环系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1024

SDWebImage的使用以及内部执行流程

SDWebImage的使用以及内部执行流程 SDWebImage是项目中处理图片常用的一种方式,用于做图片缓存,因为项目中图片是最占用资源的,如果处理不当会很麻烦,但是有了SDWebImage来做图片缓存,一切都so easy!SDWebImage在两个月前刚更新了新的,下边是使用SDWebImage的简单步骤,最后有demo提供给大家,供大家学习。 第一步:下载SDWebImage,

u014536527的专栏 1569

巧妙解决网页弹窗重复出现问题

本文探讨了网页弹窗关闭后刷新重现的问题及解决方案。通过分析原生JavaScript实现的弹窗代码存在的缺陷,提出了使用jQuery改进的方法。关键点包括:利用event.preventDefault()阻止默认行为避免刷新,采用jQuery的hide("slow")方法实现优雅的关闭动画,确保关闭状态持久化。改进后的方案既解决了弹窗重复出现的问题,又提升了用户体验,为网页弹窗交互提供了更优的实现方式。文中提供了完整的HTML、CSS和JavaScript代码示例,便于开发者直接应用。

2501_90323865的博客 179

【iOS】—— SDWebImage源码学习(2)(源码解读)

这里我们先看看SDWebImageDownloader。

qq_72437394的博客 1533

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OC Control FLAnimatedImage(加载GIF动画)

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。 效果 使用 #import "FLAnimatedImage.h" @property (nonatomic,strong) FLAnimatedImageView *flImage; self.flImage = [FLAnimatedImageView new

weixin_38716347的博客 981

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

「OC」多线程(三)——NSOperation

在写了知乎日报之前学习了相关的GCD和NSThread的相关内容,然后在知乎日报写完之后,我继续开始OC之中多线程的NSOperation的学习。由于之后肯定是要对和SDWebImage的源码继续相关学习,所以学习NSOperation的相关内容也是给后面做铺垫。NSOperation 是苹果公司对 GCD 的封装,完全面向对象,并比GCD多了一些更简单实用的功能,所以使用起来更加方便易于理解。NSOperation 和NSOperationQueue 分别对应 GCD 的 任务 和 队列。

aa2002aa的博客 1189

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

swift和oc双语言代码SDWebImage图片和AVFoundation视频Referer防盗链教程

Referer防盗链的原理 Referer防盗链的方法是后台设置了Referer这个值 在请求这个url地址的时候,必须设置后台设置的Referer值,如果不设置,就会打不开这个url 例如app中的图片链接和视频链接,如果在网页中打开就会发现打不开,会显示404错误 但是在自己的app中请求这个链接的时候设置了后台给的reeferer值以后,就可以正常打开. 下面代码中的url,以为是我和后台做实验用的url所以不会长期有效 ...

小手琴师的博客 2645

SDWebImage & SVProgressHUD

SDWebImage & SVProgressHUD SVProgressHUD SVProgressHUD 是使用 OC 开发的指示器使用非常广泛 框架地址 https://github.com/TransitApp/SVProgressHUD 与 MBProgressHUD 对比 SVProgressHUD 只支持 ARC支持较新的苹果 API提供有素材包使用更简单

lichuanlong007的博客 301

最新版SDWebImage的使用

第一步,下载SDWebImage,导入工程。github托管地址https://github.com/rs/SDWebImage 第二步,在需要的地方导入头文件 #import "UIImageView+WebCache.h" 第三步,调用sd_setImageWithURL:方法缓存图片,注意,这就是新版本的新方法,旧方法是setImageWithURL:。下面将几个方法都介绍一下

yy1992320的博客 424

SDWebImage核心原理深度解析:从URL到UIImage的完整流程

在移动应用开发中,图片加载是一个极其常见的需求,但也是一个充满挑战的技术难题。你是否曾经遇到过: - 列表滚动时图片闪烁、重复加载? - 大量网络图片导致内存暴涨、应用崩溃? - 图片加载阻塞主线程,造成界面卡顿? - 需要处理各种图片格式(GIF、WebP、HEIC等)? SDWebImage作为iOS/macOS平台最流行的图片加载库,正是为了解决这些问题而生。本文将深入解析SDWebIm...

gitblog_00776的博客 1208
上一篇: 「OC」AFNetworking的简单使用
下一篇: 「OC」知乎日报第一周
小鹿撞出了脑震荡
博客等级 码龄3年 1107粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值