HNStorage
HNStorage作为一个简单的、高效的和可扩展的CRUD层,可以作为不同iOS存储选项的中间层。
灵感来源
与不同的存储选项(如UserDefaults、Disk甚至keychain)一起工作可能会很麻烦,尤其是在企业项目中。
待办事项
- 创建CRUD层的协议
- 支持结构体
- 添加对标准iOS存储选项的支持
- 添加对列表的支持
- 添加安全层,以保护数据存储
- 添加对CoreData的支持
- 支持Objective-C
支持的存储选项
密钥链(
HNKeychainStorage
)用户默认设置(
HNUserDefaultsStorage
)内存缓存(
HNCacheStorage
)本地磁盘缓存(
HNDiskStorage
)
使用说明
我尽量使用HNStorage<Storage>
使使用说明变得非常简单。您只需使用init
方法,可以带或不带一个id
,这里的id是用来区分相同存储的标识符,例如UserDefaults的suitname:
或其他存储的Disk
位置
例如
let storage = HNStorage<HNDiskStorage>() //default location.
let storage = HNStorage<HNDiskStorage>(id: "preferred_location_on_disk")
- 对象必须遵守
Storable
协议,并且必须分配primaryKey
- 目前我们支持简单的CRUD操作,所以我们有以下函数
insert(object: Storable)
update(object: Storable)
delete(object: Storable)
exists(object: Storable) -> Bool
get<T: Storable>(_ key: String) throws -> T?