PieceStore
OC版本請移步OC版本
項目請移步Git項目地址
PieceStore是一個輕量級的key-value
存儲框架。
前言
最近在做一個運動健康方面的項目,在項目中有很多使用NSUserDefalut存儲的工作,比如存儲用戶的userId, user_name以及一些基本的配置信息。之前我們可能簡單的使用NSUserDefalut對單個屬性進行存儲,這會導致代碼管理壓力。所以PieceStore就是為了解決這種問題而存在的一個小型的框架。
適用于
假如你的項目當中有很多的零散信息需要持久化,數據量少,但是分散。還不至于使用數據庫這種龐大的存儲框架的時候,PieceStore也許非常適合你
特性
- 持久化支持多用戶
- 對象之間的歸檔互不影響
- 存儲操作簡單,再也不需要去編寫序列化/反序列化的機械操作
安裝
Podfile
在podfile中添加PieceStore依賴
pod 'PieceStore', '~> 1.0.5'
然后運行pod 更新
$ pod install
使用
基礎用法
假如項目有個需求,需要存儲用戶的信息,在沒有網絡的情況下也可以顯示
- 定一個UserInfo模型
注意: 存儲的Model類一定要繼承
CodingSupport
。
class UserInfo: CodingSupport {
var username: String = "default" //用戶名
var userSex: Bool = true //用戶性別
}
- 更新用戶信息
//更新用戶名
func updateUserInfoName(name: String) {
PieceStore.update(UserInfo.self, value: name, key: "username")
}
//更新用戶性別
func updateUserInfoSex(sex: Bool) {
PieceStore.update(UserInfo.self, value: sex, key: "userSex")
}
- 獲取用戶信息
func getUserInfoName() -> String {
return PieceStore.get(UserInfo.self, key: "username") as! String
}
進階用法
我們上面已經存儲量用戶的相關信息,但是每個用戶的信息是不一樣的,App由`User_A`切換到了`User_B`賬戶,B賬戶肯定不需要A賬戶的存儲信息,而且當`User_B`再切回`User_A`的時候,項目要保證A賬戶的信息還在。
這個時候,你可以考慮使用PieceStore的分管理用戶存儲功能
handleContext
, handleContext方法可以在不同管理用戶間快速切換,但是注意,同一時間只能存在一個管理用戶。
func handleContext(id: String) {
PieceStore.handleContext(id)
}