Comments (9)
Hi, @alexdd55
Thanks.
It is an interesting feature and could be achieved if we implement a multi-cache system.
However, currently there is not a good way to do such things in Kingfisher since its single cache structure. A possible solution would be set/replace different cache object in the shared KingfisherManager object. But there is risk of thread issues since the cache property is not thread safe now.
It will not be difficult to add this feature but the hardest part is how to design the API.
I will consider it later. Thank you.
from kingfisher.
thanks for the quick answer. :)
from kingfisher.
Oh, I guess we'd better leave it open since there is possibility to add it later. :)
It is a cool feature.
from kingfisher.
By the way, if you need to separate the disk cache duration, a possible way for now would be giving up the UIImageView
category (the kf_setImageWithURL
methods), but to use the downloader and cache classes solely.
You are always free create and config your own cache with a name and duration. When you need an image, just check if a url is already cached there. If not, you can download with the default downloader and then store it in the cache you need. Although it is a bit hard to use :(
from kingfisher.
you right, keep that open :)
this is not a showstopper, it would just be very comfortable ;)
from kingfisher.
Implemented in #30 . Waiting for merging.
from kingfisher.
nice! 👍
from kingfisher.
Added in version 1.2.0
Now you can use this code to use different caches for your images:
let avatarCache = ImageCache(name: "avatar")
avatarCache.maxCachePeriodInSecond = 100
let contentCache = ImageCache(name: "content")
contentCache.maxCachePeriodInSecond = 200
avatarImageView.kf_setImageWithURL(NSURL(string: "avatar_image_url")!,
placeholderImage: nil,
optionsInfo: [.TargetCache: avatarCache])
contentImageView.kf_setImageWithURL(NSURL(string: "content_image_url")!,
placeholderImage: nil,
optionsInfo: [.TargetCache: contentCache])
Please let me know whether it works for you. Please notice that the options
APIs are now deprecated, and you need to switch to the new optionsInfo
version.
from kingfisher.
what can i say? Awesome Job! 👍
I might test it over the weekend.
Great work!
from kingfisher.
Related Issues (20)
- Resizing an UIImageView via UIViewPropertyAnimator makes loaded image disappear and placeholder appear HOT 3
- `defaultOptions` only invokes _last_ `requestModifier` in chain HOT 2
- How to refresh cache same url while in use props: .resizing() and downsampling() on SwiftUI HOT 2
- 部分jpg图片链接无法显示的问题,kf.setImage(with: URL(string: url), placeholder: placeholder) HOT 5
- ImageProgressive.swift:121 Crash HOT 2
- Diskstorage.swift:224 (fileManager.fileExists(atPath: filePath) 文件IO耗时导致卡顿 HOT 2
- Memory Leak HOT 3
- Privacy Report HOT 4
- 约定的图片地址实际资源为视频时,在列表中加载这种资源,内存激增导致 App 闪退。 HOT 2
- Fade transition still occurs when cache is used with downsampling enabled
- Upload Privacy Policy HOT 2
- KingfisherManager.shared warning on Xcode 15.3 with Strict Concurrency Checking set to complete HOT 4
- Crash at ImageContext.swift line 84. EXC_BAD_ACCESS (SIGSEGV) HOT 1
- Race Condition in ImageDownloader.addDownloadTask
- Some Crashs On iPad5.3
- CPListItem' is only available in iOS 12.0 or newer HOT 1
- 同一个cacheKey有不用的downloadURL,主要是加入size控制,如何实现同一cacheKey只缓存size更大的图片数据呢
- [Question] Show a stub ONLY after attempt to load image by URL. HOT 1
- SwiftUI中如何使用progressiveJPEG
- Memory issue
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kingfisher.