昨天发了介绍代码生成脚本的贴之后, 睡觉前感觉我可以提供一个更 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 告别.
1
danielwyo 2017-01-01 20:21:04 +08:00
不错, 可以点个赞. 不过, 用 Default 作为类名似乎有点不妥, 虽然不是关键字, 但总归会容易跟小写的 default 混淆.
|