Swift学习之UserDefaults
来源:互联网 发布:cnzz数据专家 编辑:程序博客网 时间:2024/06/16 19:08
之前我在用UserDefaults的使用,经常使用
UserDefaults.standard.set("姓名",forKey:"name")
printf(UserDefaults.standard.value(forKey:"name"))
用这种方法就算是写成全局变量或者写成一个方法,虽然解决了重用的问题,但是在体验还是不友好。为了向系统靠近,我学习了下面的一个方法来存储和使用。
1.首先我们先写一个UserDefaults的一个扩展,同时里面声明一个枚举
extension UserDefaults {
enum
UserModel: String,UserDefaultSettable {
case
name
}
}
UserDefaultSettable该协议需要我们自己去声明实现,我们下来实现该协议
protocol UserDefaultSettable {
var uniqueKey : String{get}
}
同时还有该协议的扩展
extensionUserDefaultSettable whereSelf:RawRepresentable,Self.RawValue == String {
internal var uniqueKey:String {
return "\(Self.self).\(rawValue)"
}
func store(value:Any?) {
UserDefaults.standard.set(value
, forKey:uniqueKey)
}
internal var storeValue:Any? {
return UserDefaults.standard.value(forKey:uniqueKey)
}
}
到此,我们可以去我们要存储的地方使用
UserDefaults.UserModel.name.store(value:"姓名")
UserDefaults.UserModel.name.storeValue来使用我们存起来的数据
其中
func store(value:Any?) {
UserDefaults.standard.set(value
, forKey: uniqueKey)
}
internal var storeValue:Any? {
return UserDefaults.standard.value(forKey:uniqueKey)
}
这两个东西我们可以模仿官方的把Any改成其他类型的。
- Swift学习之UserDefaults
- Swift基础之数据持久化UserDefaults(适合初学者)
- Swift - UserDefaults and Alert
- 实现自定义数据存入 UserDefaults [iOS Swift] NSKeyedArchive & UserDefaults
- UserDefaults
- Swift: 用UserDefaults保存复杂对象
- 【swift】swift学习之旅!
- Swift 学习之路
- Swift学习之 泛型
- swift学习之数组
- swift学习之...和..<
- Swift学习之初识
- swift学习之杂乱无章
- Swift学习之 -- 函数
- Swift学习之UIButton
- swift学习之basic
- Swift学习之字符串
- swift学习之函数
- linux下安装jdk
- 初试Jenkins2.0 Pipeline持续集成
- Flip Game POJ
- MindManager安装后导致鼠标失灵问题解决
- 4. JavaScript 设计模式(适配器模式,外观模式)
- Swift学习之UserDefaults
- 重启crontab服务
- Java8 Lambda表达式教程
- 常用正则匹配收集
- 新的开始,Hello World !
- 支持向量机(Support Vector Machine,SVM)详解
- merge和update的区别
- 《我是这样封装Windows7的》。。。。。。
- 如何保证用log4J 写log 的时间和系统设置的timezone 保持一致