- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Kingfisher
库来下载和缓存图像。我在实现中遇到了一些问题:
图片是否同时缓存在内存和磁盘中?
有没有只在磁盘上缓存图片的规定?
我已经阅读了多篇关于此的文章,但找不到任何解决方案。
最佳答案
是的,Kingfisher 在内存和磁盘上缓存图像。
默认情况下,将使用的 RAM 数量甚至没有限制,您必须自己设置该值:
ImageCache.default.maxMemoryCost = 1024 * 1024 * yourValue
1024 * 1024 * yourValue
是以百万像素为单位的全局成本(我知道这很奇怪,但它不是兆字节,而是百万像素,因为图像可以有不同的位深度等)。
例如,在我的测试中,1024 * 1024 * 500
值使用的最大 RAM 在 120MB 和 300MB 之间波动。
顺便说一句,这也是您告诉 Kingfisher 永远不要使用 RAM 并且只缓存到磁盘的方式:
ImageCache.default.maxMemoryCost = 1
这将强制 Kingfisher 仅使用磁盘缓存。
如何调试
第一件事是检查您是否在正确的缓存上设置了最大值。也许您确实创建了自定义缓存?我的示例是设置默认缓存的值,如果没有定义其他缓存则使用该值。
您可能还想手动清除内存缓存并比较前后的RAM占用情况:
ImageCache.default.clearMemoryCache()
如果您认为某些大图像不应该在内存缓存中,您可以使用 isImageCached
进行验证:
if let result = ImageCache.default.isImageCached(forKey: imageLink) {
print(result.cached)
print(result.cacheType)
}
关于ios - 如何使用 Kingfisher 仅在磁盘中缓存图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048657/
使用 Kingfisher 5.7.1,我无法仅为一个类(UIImageView 扩展)导入 Kingfisher。 我可以针对通用 iOS 设备进行构建,但如果我在模拟器或设备上尝试,则会出现导入错
我的 API 返回 2 种类型的照片:小照片和大照片 我使用 kingfisher 加载照片,并且总是先加载小照片。当我加载大照片时我想实现这一点 if hasCacheSmallPhoto {
我正在尝试使用 Cocoapod KingFisher 缓存图像,我使用的代码确实显示数据库存储中的图像,但它不缓存。我很好奇为什么? 打印总是显示“cache Result none”。而且我还注意
我是 swift IOS 新手 .. 我用这个 kingfisher 从 url 获取图像 .. 这是原始代码.. let kingfisherSource = [KingfisherSource(u
for url in status.storedPicURLS! { group.enter() print("🐷\(status.storedPic
我搜索了 Kingfisher 文档和 Stack Overflow,对于 Kingfisher 是否支持视频缓存没有明确的答案。一般来说,我是缓存视频/图像的新手,所以如果有人可以扩展 (1) 是否
我有一个带有图片 url 的数组,我需要下载所有图片,在传递给查看之前将它们全部添加到数组中。 我正在使用该片段下载单个图像 var images: [UIImage] = [] ImageDownl
我正在使用 Kingfisher用于在 UICollectionView 单元格中缓存图像的库。 我注意到调用 kf_setImage (假设cell的名字叫listCell,它的ImageView叫
我想在模拟器上运行我的应用程序 但我收到此错误: no such module 'Kingfisher' pod更新,pod安装,删除DerivedData文件夹,重新启动xcode,使用xcwork
我正在尝试使用 Kingfisher 动态设置 UIImageView 。上下文是在不同可选择行的前一个屏幕上有一个 TableView,然后当选择该行时,详细信息 UIView 显示其中包含更多信息
我有一个可以使用 API JSON 响应的应用程序。只是检索一个简单的项目数组。每个项目都有一个带有高分辨率图像的 URL。我正在使用 Kingfisher 获取此图像并将其大小调整为我的 Image
我有 Medicine 结构,它包含我要下载并设置到 ImageView 的图像的 image_origin URL。出于下载/缓存目的,我使用了 Kingfisher 框架。 let m =
我正在使用 Kingfisher 从一组 url 下载图像。 我需要将下载或缓存的图像(实际大小的图像)存储在我的文档目录中。 这有可能吗? 最佳答案 使用以下代码将图像加载到 ImageView 中
我的滚动性能一直很慢,我注意到当我滚动并且使用非缓存图像调用 setImage 时,性能会在下载时滞后。 if let imageURL = URL(string: presentable.image
我正在使用翠鸟通过这些方法之一下载单个图像 KingfisherManager.shared.retrieveImage 或 ImageDownloader.default.downloadImage
这是我的 Swift 3 代码。我需要将图像放入通过 Kingfisher 缓存下载的数组中。实际上,图像现在显示在 cell.itemImage 中,但我无法将这些图像放入 UIImage 数组。
我正在使用 Kingfisher 库来下载和缓存图像。我在实现中遇到了一些问题: 图片是否同时缓存在内存和磁盘中? 有没有只在磁盘上缓存图片的规定? 我已经阅读了多篇关于此的文章,但找不到任何解决方案
我正在使用 xCode 13 beta 4,并希望将包含 Kingfisher 的项目归档。该应用程序在 iOS 15 下运行良好,但是当我试图将其存档时出现以下错误。有人知道我应该做什么吗?谢谢!
我使用 kingfisher 从 tableview 中的 url 加载图片。在我的 Controller 中,我有一个用于显示图片的表格 View ,一个用于使用新图片重新加载表格 View 的“下
我正在使用 Kingfisher 下载图像并将其设置为 UITableView 单元格中的 ImageView 。一切正常,表格 View 在下载新图像之前首先显示占位符图像。但是,只有在滚动 Tab
我是一名优秀的程序员,十分优秀!