昨天发了介绍代码生成脚本的贴之后, 睡觉前感觉我可以提供一个更 Modern, Easy, Swifty 的方式的 帮助读写 UserDefaults. 今天抽空实现了. 首先来看看它是怎么使用的.
struct MWebSettings{
static var baseFont = Default<String>("baseFont", defaultValue:"Menlo")
static var baseFontSize = Default<Int>("baseFontSize", defaultValue:15)
static var lineSpacing = Default<Int>("lineSpacing", defaultValue: 1)
static var avatarUrl = Default<URL>("avatar")
static var favoriteFruits = Default<[String]>("favoriteFruits")
}
// 写入值.
MWebSettings.baseFontSize.value = 13
// 读取值
MWebSettings.baseFontSize.value // 13
主要核心在一个包装的泛型 Default<T>, 虽然是泛型,但是提前做了支持的类型判断. 以提示你使用 UserDefaults 支持的数据类型.
特色
- 泛型, 类型安全.
- 声明式, 声明
Defaults - 可以直接提供默认值.
- 简单易用, 开箱即用.
- 拥有完善的测试代码, 文档
代码在: https://github.com/banxi1988/EasyDefaults
这个算是我第一个测试代码比较完善, 而且加了适当文档的开源项目了. 更重要的是, 实现得简单. 在这 2016 年最后一天, 当作是以比较完善的方式向 2016 告别.