SwiftyUserDefaults对NSUserDefaults的封装扩展
SwiftyUserDefaults 是对NSUserDefaults的一些封装和扩展,这个库这个只有一个类,操作起来十分简单方便:
这里只有两个步骤来使用SwiftyUserDefaults:
step 1:自定义你的键
extension DefaultsKeys{
/// 存储用户手机号码
static let userName = DefaultsKey<String?>("username")
/// 存储当前定位地区
static let regionName = DefaultsKey<String?>("regionName")
}
step 2:开始使用它
//为用户手机号码赋值
Defaults[.userName] = "KangKang" //取值也是十分方便
let userName = Defaults[.userName]
//还有另外一种方法来存储你的键值,就是直接跳过步骤1不扩展DefaultsKeys也可以实现:
var user = Defaults["user"].string //指定键的类型
NSLog("user:\(user)") //因为一开始并没有对user赋值,从控制台可以看到输出结果:user:nil var userValue = Defaults["userValue"].stringValue //取键的值
NSLog("userValue:\(userValue)") //因为一开始并没有对userValue设置值,从控制台可以看到输出结果:userValue: // 直接给键赋值
Defaults["users"] = "KangKang"
var getusersValue = Defaults["users"].stringValue
NSLog("getusersValue:\(getusersValue)")//getusersValue:KangKang
//此处若是改成 var getusersValue = Defaults["users"].string //便会输出getusersValue:Optional("KangKang")
//hasKey判断是否存在该key,返回布尔值
if Defaults.hasKey("users"){
NSLog("users 存在")
}else{
NSLog("users 不存在")
}
//移除指定的key
Defaults.remove("users")
这是我对这个库的一些基本了解,若是出现了错误,望及时指出。你们要是想要了解更多,可以去github看看: https://github.com/radex/SwiftyUserDefaults
SwiftyUserDefaults对NSUserDefaults的封装扩展的更多相关文章
- 封装扩展Kendo UI Grid
封装后的代码如下: function DataGrid(options) { this.options = { height: "100%", sortable: true, re ...
- swift常用第三方库
网络 Alamofire:http网络请求事件处理的框架. Moya:这是一个基于Alamofire的更高层网络请求封装抽象层. Reachability.swift:用来检查应用当前的网络连接状况. ...
- swift 常用第三方库
1.Network: Alamofire:著名的AFNetworking网络基础库Swift版 -https://github.com/Alamofire/Alamofire SwiftyJSON: ...
- React-Native开发之原生模块封装(Android)升级版
本文主题:如何实现原生代码的复用,即如何将原生模块封装. (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/52862 ...
- jQuery框架-3.jQuery自定义封装插件和第三方插件
一.jQuery的封装扩展 1.jQuery中extend方法使用 (挂在到jQuery和jQuery.fn两对象身上的使用) 1.1.官方文档定义: jQuery.extend Merge th ...
- 如何将已经安装从chrome扩展程序导出备份为.CRX文件?
之前介绍过CRX Extractor可以从chrome应用商店下载备份扩展程序,有读者朋友问说:如果 Google Chrome扩展程序已经从 Chrome应用商店下架,还有没有方法下载呢?通常网路上 ...
- 使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神
使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神 前言 接上一篇 使用 EPPlus 封装的 excel 表格导入功能 (一) 前一篇的是大概能用但是 ...
- .net 网络编程
1.首先说下计算机网络中的TCP/IP参考模型 TCP/IP把网络分为5层,每一层负责完成不同的功能 1)应用层:传输报文,提供各种网络应用,有FTP.SMTP.HTTP等协议 2)运输层:传输报文段 ...
- jQuery源码分析系列(40): 动画设计
前言 jQuery动画是通过animate这个API设置执行的,其内部也是按照每一个animate的划分封装了各自动画组的行为, 包括数据过滤.缓动公式.一些动画默认参数的设置.元素状态的调整.事件的 ...
随机推荐
- c#控件重绘的问题
1.当Panel有背景图像的时候,往Panel添加控件(带图像),画面会非常闪烁,所以,Panel尽量不要带背景图像 2.带背景图像可以参考designer.cs里面的写法... 添加Control之 ...
- ZOJ 3872 计算对答案的贡献
D - Beauty of Array Description Edward has an array A ...
- luogu 1083 借教室
题目大意: 有一些教室 我们需要处理接下来n天的借教室信息 其中第i天学校有ri个教室可供租借 共有m份订单 每份订单用三个正整数描述 分别为dj sj tj 表示从第sj天到第tj天租借教室 每天需 ...
- python-----获取ip的两种方法
方法一: 通常使用socket.gethostbyname()方法即可获取本机IP地址,但有时候获取不到(比如没有正确设置主机名称),示例代码如下: import socket # 获取本机计算机名称 ...
- 2-4 Vue中的属性绑定和双向数据绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- robotframework - 框架做接口自动化get请求
1.做get请求之前先安装 Request库,参考github上链接 :https://github.com/bulkan/robotframework-requests/#readme 2.请求&a ...
- canvas particles
var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var Grewer = { in ...
- Y-C
1.asp.net服务控件生命周期 11个生命阶段 (1)初始化: 初始化在传入Web请求生命周期内所需的设置,.跟踪视图状态.页面框架通过默认方式引发Init事件,并调用OnInit()方法,控件开 ...
- ASP.NET SQL 总结
1.SQLSERVER服务器中,给定表 table1 中有两个字段 ID.LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句 ...
- mydatepicker97 日历控件
官方教程: http://www.my97.net/