PieceStore 4.0.1

PieceStore 4.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最新发布2017年12月
SwiftSwift版本3.0
SPM支持SPM

Zero_Lee 维护。



  • 作者
  • caivenlf

PieceStore


Version
License
Platform

PieceStore是一个轻量级的对象存储框架,以key-value方式使用。

前言

最近正在进行一个运动健康方面的项目,在项目中有很多使用NSUserDefalut存储的工作,比如存储用户的userId, user_name以及一些基本的配置信息。之前我们可能只是简单地使用NSUserDefalut对单个属性进行存储,这会导致代码管理的压力。因此,PieceStore是为了解决这种问题而存在的一个小型框架。

适用于

如果你的项目中有许多分散的信息需要持久化,数据量少但分散,且不一定要使用数据库这种庞大的存储框架时,PieceStore可能非常适合你。

特性

  • 持久化支持多用户
  • 对象之间的归档互不影响
  • 存储操作简单,再也不需要编写序列化/反序列化的机械操作

安装

Podfile[require: Swift3.0]

已支持Swift4,Swift3需要继承CodingSupport基类,Swift4需要符合Codable协议(实际上不需要实现任何接口)

在podfile中添加PieceStore依赖

pod 'PieceStore', '~> 4.0.0'

然后运行pod 更新

$ pod install

使用

Swift3基本用法

例如,项目有需求,需要存储用户信息,在没有网络的情况下也能展示

定义一个User模型

注意:存储的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

Swift4基本用法

定义一个User模型

注意:存储的Model类必须继承Codable

class UserInfo: Codable {
    var name = "default"
    var age = 0
}
更新Model信息
  let user = User()
  user.name = "zero"
  user.age = 23
  PieceStore.save(obj: userInfo)
获取Model信息
  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)