CacherKit:纯 Swift 的 iOS 简单数据缓存管理库,支持内存、磁盘、keychain钥匙串,接口统一,使用方便

CacherKit

https://github.com/ZuopanYao/CacherKit

iOS 简单数据缓存管理库,支持内存、磁盘、keychain钥匙串,接口统一,使用方便

Warning

Verstion 2.0.0 not downward compatible.

Requirements / 使用条件

  • iOS 11.0+
  • Xcode 10.2+
  • Swift 5.0+

Installation / 安装

CocoaPods

pod 'CacherKit'

Manually / 手动安装

If you prefer not to use either of the aforementioned dependency managers, you can integrate CacherKit into your project manually.

如果您不喜欢以上管理依赖库的方式,则可以手动将 CacherKit 集成到项目中。

Usage in Swift / 使用

General

Define Your Key
import CacherKit

extension CKKey {
    static let mykey: CKKey = .init("mykey")
}
Adding an item
/// Saving to disk (With UserDefaults)
CKKey.mykey.disk.string = "TestString"
        
/// Saving to memory
CKKey.mykey.memory.string = "TestString"
        
/// Saving to keychain
CKKey.mykey.keychain.string = "TestString"
Obtaining an item
/// Read from disk (With UserDefaults)
let diskString = CKKey.mykey.disk.string
/// Read from keychain
let keychainString = CKKey.mykey.keychain.string
/// Read from memory
let memoryString = CKKey.mykey.memory.string
Removing an item
Set nil
 /// Removing from disk (With UserDefaults)
CKKey.mykey.disk.string = nil
    
/// Removing from memory
CKKey.mykey.memory.string = nil
    
/// Removing from keychain
CKKey.mykey.keychain.string = nil
Remove method
/// Removing from disk (With UserDefaults)
CKKey.mykey.disk.remove()
    
/// Removing from memory
CKKey.mykey.memory.remove()
    
/// Removing from keychain
CKKey.mykey.keychain.remove()

Saving model ( Must be Codable )

Model Example
/// Must be codable
struct MyModel: Codable {
    var name: String = ""
    var age: Int = 100
}

Saving、 Obtaining and Removing
let model = MyModel()
        
/// Saving to disk (With UserDefaults)
model.encode(to: .disk)
    
/// Saving to memory
model.encode(to: .memory)
    
/// Saving to keychain
model.encode(to: .keychain)
    
/// Obtaining
let instanceFromDisk: MyModel? = MyModel.decode(from: .disk)
let instanceFromMemory: MyModel? = MyModel.decode(from: .memory)
let instanceFromKeychain: MyModel? = MyModel.decode(from: .keychain)
        
/// Removing
MyModel.remove(from: .disk)
MyModel.remove(from: .memory)
MyModel.remove(from: .keychain)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Harvey66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值