Skip to content

A SDWebImage plugin to integrate PINCache for custom image caching

License

Notifications You must be signed in to change notification settings

SDWebImage/SDWebImagePINPlugin

Repository files navigation

SDWebImagePINPlugin

CI StatusVersionLicensePlatformCarthage compatibleSwiftPM compatiblecodecov

What's for

SDWebImagePINPlugin is a plugin for SDWebImage framework, which provide the image loading support for PINCache cache system.

You use PINCache instead of SDImageCache for image cache system, which may better memory cache performance (By taking advanced of LRU algorithm), and disk cache performance (By taking advanced of queue management and age/bytes LRU algorithm)

Usage

PINCache

To enable PINCache instead of SDImageCache, you can bind the cache for shared manager, or create a custom manager instead.

  • Objective-C
// Use `PINCache` for shared manager SDWebImageManger.defaultImageCache = [PINCache cacheWithName:@"name"];
  • Swift
// Use `PINCache` for shared manager SDWebImageManger.defaultImageCache =PINCache(name:"name")

You can also attach the custom cache for individual image requests via .imageCache context option.

  • Objective-C
// Use `PINCache` for single URL request [imageView sd_setImageWithURL:url placeholderImage:niloptions:0context:@{SDWebImageContextImageCache: @(pinCache)} progress:nilcompletion:completion];
  • Swift
// Use `PINCache` for single URL request imageView.sd_setImage(with: url, placeholderImage:nil, context:[.imageCache : pinCache], progress:nil, completion: completion);

PINDiskCache && PINMemoryCache

You can also use PINMemoryCache or PINDiskcache to customize memory cache / disk cache only. See Custom Cache wiki in SDWebImage.

  • Objective-C
// Use `PINMemoryCache` for shared `SDImageCache` memory cache implementation SDImageCacheConfig.defaultCacheConfig.memoryCacheClass = PINMemoryCache.class; // Use `PINDiskcache` for shared `SDImageCache` disk cache implementation SDImageCacheConfig.defaultCacheConfig.diskCacheClass = PINDiskcache.class;
  • Swift
// Use `PINMemoryCache` for `SDImageCache` memory cache implementation SDImageCacheConfig.default.memoryCacheClass =PINMemoryCache.self // Use `PINDiskcache` for `SDImageCache` disk cache implementation SDImageCacheConfig.default.diskCacheClass =PINDiskcache.self

Requirements

  • iOS 9+
  • tvOS 9+
  • macOS 10.11+
  • watchOS 2.0+
  • Xcode 11+

Installation

CocoaPods

SDWebImagePINPlugin is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod'SDWebImagePINPlugin'

Carthage

SDWebImagePINPlugin is available through Carthage.

github "SDWebImage/SDWebImagePINPlugin" 

Swift Package Manager (Xcode 11+)

SDWebImagePINPlugin is available through Swift Package Manager.

letpackage=Package( dependencies:[.package(url:"https://github.com/SDWebImage/SDWebImagePINPlugin.git", from:"0.3.0")])

Author

DreamPiggy, [email protected]

License

SDWebImagePINPlugin is available under the MIT license. See the LICENSE file for more info.

About

A SDWebImage plugin to integrate PINCache for custom image caching

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published