ANWCacheManager
Memory friendly caching in directory and simple use user defaults methods. Every cached object has a life cycle and it will be deleted when it expires. It uses the memory and file directory in a complex and effective way.
Installation
To use the ANWCacheManager in an app, just drag the ANWCacheManager files in Classes folder (demo files and assets are not needed) into your project. Add "#import <CommonCrypto/CommonCrypto.h>" into Bridging-Header.
Properties
The ANWCacheManager has the following properties (note: for iOS, NSObject when using properties):
static let instance = ANWCacheManager()
Instance object. (Singleton)
private static let kDefaultCacheMaxCacheAge: Double = 60 * 60 * 24 * 7; // 1 week
The default value is 1 week.
Methods
The ANWCacheManager has the following methods (note: for iOS, NSObject in method arguments):
func setImage(image: UIImage?, key: String)
Save image to memory and file directory.
func setObject(object: AnyObject?, key: String)
Save object to memory and file directory.
func setData(data: NSData, key: String)
Save data to memory and file directory.
func object(key: String) -> AnyObject?
Get object from memory or file directory.
func image(key: String) -> UIImage?
Get image from memory or file directory.
func isHaveObject(key: String) -> Bool
This object is checked from key in memory or file directory.
func removeObject(key: String?)
Remove object from memory or file directory.
func clearDisk()
Delete all objects in file directory.
func writeToUserDefaults(object: AnyObject, key: String) -> Bool
Write object to user defaults.
func removeFromUserDefaults(key: String) -> Bool
Remove object from user defaults.
func readFromUserDefaults(key: String) -> AnyObject?
Get object from user defaults.
func saveCache(object: AnyObject, key: String)
Save object to memory.
func readCacheObject(key: String) -> AnyObject?
Get object from memory.
How to use ?
let photoURL: String = "demo.url"
// Remove to file directory
ANWCacheManager.instance.removeObject(key: photoURL)
let dataKey: String = "demo.key"
// Remove to user defaults
ANWCacheManager.instance.removeFromUserDefaults(key: dataKey)
// Save to file directory
let data: String = "demo.key"
ANWCacheManager.instance.setObject(object: data, key: dataKey)
// Save to file directory
let imageName: String = "demo.image.name"
let imageKey: String = "demo.image.key"
ANWCacheManager.instance.setImage(image: UIImage(named: imageName), key: imageKey)
// Remove to file directory
ANWCacheManager.instance.removeObject(key: imageKey)
// Save to user defaults
ANWCacheManager.instance.writeToUserDefaults(object: data, key: dataKey)
Build and run the project files. Enjoy more examples!