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的封装扩展的更多相关文章

  1. 封装扩展Kendo UI Grid

    封装后的代码如下: function DataGrid(options) { this.options = { height: "100%", sortable: true, re ...

  2. swift常用第三方库

    网络 Alamofire:http网络请求事件处理的框架. Moya:这是一个基于Alamofire的更高层网络请求封装抽象层. Reachability.swift:用来检查应用当前的网络连接状况. ...

  3. swift 常用第三方库

    1.Network: Alamofire:著名的AFNetworking网络基础库Swift版  -https://github.com/Alamofire/Alamofire SwiftyJSON: ...

  4. React-Native开发之原生模块封装(Android)升级版

     本文主题:如何实现原生代码的复用,即如何将原生模块封装. (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/52862 ...

  5. jQuery框架-3.jQuery自定义封装插件和第三方插件

    一.jQuery的封装扩展 1.jQuery中extend方法使用 (挂在到jQuery和jQuery.fn两对象身上的使用) 1.1.官方文档定义: jQuery.extend   Merge th ...

  6. 如何将已经安装从chrome扩展程序导出备份为.CRX文件?

    之前介绍过CRX Extractor可以从chrome应用商店下载备份扩展程序,有读者朋友问说:如果 Google Chrome扩展程序已经从 Chrome应用商店下架,还有没有方法下载呢?通常网路上 ...

  7. 使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神

    使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神 前言 接上一篇 使用 EPPlus 封装的 excel 表格导入功能 (一) 前一篇的是大概能用但是 ...

  8. .net 网络编程

    1.首先说下计算机网络中的TCP/IP参考模型 TCP/IP把网络分为5层,每一层负责完成不同的功能 1)应用层:传输报文,提供各种网络应用,有FTP.SMTP.HTTP等协议 2)运输层:传输报文段 ...

  9. jQuery源码分析系列(40): 动画设计

    前言 jQuery动画是通过animate这个API设置执行的,其内部也是按照每一个animate的划分封装了各自动画组的行为, 包括数据过滤.缓动公式.一些动画默认参数的设置.元素状态的调整.事件的 ...

随机推荐

  1. Paypal支付(一)MPL真正的快捷支付

    一.前导 前面讲到了MEC支付,是在Web端集成好的,在手机端仅仅需通过WebView进行载入就可以,不须要不论什么Paypal第三方架包.以下将的是MPL支付.须要架包. 这样的支付的形式能够參考以 ...

  2. Codeforces Round #233 (Div. 2)D. Painting The Wall 概率DP

                                                                                   D. Painting The Wall ...

  3. gcc的搜索路径,头文件和库

    1 抛开默认的搜索路径,自己指定搜索路径 第一,明确自己编写的代码所需要的头文件和库放在了哪里 第二,使用“-I”指定头文件的搜索路径,使用-rpath指定库的搜索路径 2 无论是本地编译还是交叉编译 ...

  4. HDU 5855Less Time, More profit

    Less Time, More profit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  5. iOS:界面适配(二)--iPhone/iPad适配(关于xib)

    本文纯属个人看法,强迫症后遗症 版本:xcode 6.0 + iOS SDK 8.0 讨论范围:控制器的view(创建VC时自带的xib) ------------------------------ ...

  6. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 C序列变换

    链接:https://www.nowcoder.com/acm/contest/91/C来源:牛客网没有账号的同学这样注册,支持博主 题目描述 给定两个长度为n的序列,ai, bi(1<=i&l ...

  7. BZOJ_1115_[POI2009]石子游戏Kam_博弈论

    BZOJ_1115_[POI2009]石子游戏Kam_博弈论 Description 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数.两人轮流操作每次操作可以从一堆石子中移走任意多石子 ...

  8. 【USACO 2008FEB】 旅馆

    [题目链接] 点击打开链接 [算法] 线段树 对于一个节点,记录它从左端点延伸的最多的空房间的个数,从右端点延伸的最多的空房间个数,和该区间最多的连续 空房间个数 [代码] #include<b ...

  9. bzoj2705 [SDOI2012]Longge的问题——因数

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2705 一开始自己想了半天... 有了点思路:遍历 n 的因数 k,每个因数要预处理出 gcd ...

  10. GitLab: API is not accessibl

    git push -u origin masterGitLab: API is not accessiblefatal: Could not read from remote repository. ...