- Easy to use
- Default cache protocol use user defaults
- iOS 8+
- Xcode 7+
- Swift 2.0
UserCache is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "UserCache"
Check out the demo project for a concrete example.
// String
UserCache.put("string", value: "This is a string")
print("Key: string\nValue: \(UserCache.get("string"))")
// Number
UserCache.put("number", value: 20.3)
print("Key: number\nValue: \(UserCache.get("number"))")
// JSON
UserCache.put("json", value: ["key": "value"])
print("Key: json\nValue: \(UserCache.get("json"))")
// NSData
UserCache.put("data", value: NSData(bytes: [0xFF, 0xD9] as [UInt8], length: 2))
print("Key: data\nValue: \(UserCache.get("data"))")
print("------------------------------")
// Remove an object from the cache
UserCache.remove("string")
print("Remove Key: string\nValue: \(UserCache.get("string"))")
print("------------------------------")
// Set expired key in 2 seconds
UserCache.put("string", value: "This is a string key expired in 2 seconds", seconds: 2)
print("Expired Key: string\nValue: \(UserCache.get("string"))")
print("Sleep 3 seconds")
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(3 * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(),
{
self.print("Expired Key: string\nValue: \(UserCache.get("string"))")
}
)
// Clean the cache
// UserCache.clear()
// Clean expired keys from cache
// UserCache.cleanExpirated()
Return value for key
in cache. If not has key
in cache return defaultValue
.
UserCache.get("exist.key") // return value for "exist.key"
UserCache.get("not.exist.key") // return nil, because "not.exist.key" not exist in cache
UserCache.get("not.exist.key2", defaultValue: 10) // return 10, because "not.exist.key" not exist in cache, but defaultValue is set
Put value
for key
in cache. Expired in seconds
.
UserCache.put("a.key", value: 10) // Expired in DEFAULT_CACHE_SECONDS
UserCache.put("a.key2", value: 10, seconds: 5 * 60) // Expired in 5 minutes
Return true
if has value for key
in cache, else false
.
UserCache.has("exist.key") // return true
UserCache.has("not.exist.key") // return false
Return value for key
in cache if exist, and remove this key in cache.
UserCache.remove("exist.key") // return value for "exist.key"
UserCache.remove("not.exist.key") // return nil, because "not.exist.key" not exist in cache
Return remove all keys in cache.
UserCache.clear()
Return remove expirated keys in cache.
UserCache.cleanExpirated()
Return true
if key
in cache is expired, else false
.
UserCache.put("a.key2", value: 10, seconds: 5 * 60) // Expired in 5 minutes
// Delay 6 minutes
UserCache.isExpirated("a.key2") // return true
UserCache is available under the MIT license. See the LICENSE file for more info.