测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年12月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由 Zero_Lee 维护。
PieceStore是一个轻量级的对象存储框架,以key-value
方式使用。
最近正在进行一个运动健康方面的项目,在项目中有很多使用NSUserDefalut存储的工作,比如存储用户的userId, user_name以及一些基本的配置信息。之前我们可能只是简单地使用NSUserDefalut对单个属性进行存储,这会导致代码管理的压力。因此,PieceStore是为了解决这种问题而存在的一个小型框架。
如果你的项目中有许多分散的信息需要持久化,数据量少但分散,且不一定要使用数据库这种庞大的存储框架时,PieceStore可能非常适合你。
已支持Swift4,Swift3需要继承CodingSupport基类,Swift4需要符合Codable协议(实际上不需要实现任何接口)
在podfile中添加PieceStore依赖
pod 'PieceStore', '~> 4.0.0'
然后运行pod 更新
$ pod install
例如,项目有需求,需要存储用户信息,在没有网络的情况下也能展示
注意:存储的Model类必须继承
CodingSupport
。
class User: CodingSupport {
var name = "default"
var age = 0
}
let user = User()
user.name = "zero"
user.age = 23
PieceStore.saveInfo(obj: user)
PieceStore.getInfo(type: User.self)
//更新用户名
PieceStore.update(User.self, value: name, key: "name")
//更新用户年龄
PieceStore.update(User.self, value: sex, key: "age")
PieceStore.get(User.self, key: "name") as! String
注意:存储的Model类必须继承
Codable
。
class UserInfo: Codable {
var name = "default"
var age = 0
}
let user = User()
user.name = "zero"
user.age = 23
PieceStore.save(obj: userInfo)
let userInfo = PieceStore.get(type: User.self)
我们已存储用户的相关信息,但是每个用户的信息都不一样。当App从“User_A”切换到“User_B”账户时,“User_B”账户肯定不需要“User_A”账户的存储信息,而且当“User_B”再次切换回“User_A”时,项目要确保“User_A”的信息还在。
这时,你可以考虑使用PieceStore的分管理用户存储功能
handleContext
。handleContext方法可以在不同的管理用户之间快速切换,但请注意,同一时间只能存在一个管理用户。
PieceStore.handleContext(id: String)