swift序列化/反序列化/归档的轻量级存储框架

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)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,860评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 时光匆匆流走,不知不觉毕业已经快三个月了。对于我,毕业季主要包括找工作和论文。我也相信对于大多数毕业证,找工作占据...
    火焰里稻草人阅读 159评论 0 0
  • 15:21 看了10几分钟屏幕,眼睛很累:疼,不敢睁眼了。怀疑眼睛要废掉了 15:48 所谓的虚荣心,其实只是希望...
    念头快照阅读 213评论 0 0