IOS(swift)-数据存储 · 用NSUserDefaults存储配置信息
1.用NSUserDefaults存储配置信息
注:本次使用NSUserDefaults存储信息是在不考虑安全问题的前提下。
分两种情况:
1.如果是密码用户名等敏感信息,请使用Keychain存储用户敏感信息,我将在后面写一篇用Keychain存储用户敏感信息
2.如果是设置 记住密码、第一次打开应用引导App,或者一般APP的设置,那么,可使用NSUserDefaults
一般情况下使用方法,最常见的有两种:
1.首次登陆,APP引导介绍页
用户在首次打开APP的时候,使用NSUserDefaults判断用户是否有配置存储信息,一般会申明一个 isFirstLaunch,判断是否为第一次启动。如果是第一次启动,则先出现一个引导页面。
2、记住用户信息
我们这里以第二种讲解:
比如这里的
用户名 ——> nameField
密码 ——> pwdField
开关 ——>rembSwich
登陆按钮 ———>loginBtn
逻辑为
点击 1.登陆按钮保存配置信息-2.重新登陆读取配置信息。
1.登陆按钮保存配置信息
//全局设置
let UserNameKey = "name"
let PwdKey = "pwd"
let RmbPwdKey = "rmb_pwd"
let IsFirstLaunch = "ifl"
//设置存储信息
NSUserDefaults.standardUserDefaults().setObject(self.nameField.text, forKey: "UserNameKey")
NSUserDefaults.standardUserDefaults().setObject(self.pwdField.text, forKey: "PwdKey")
NSUserDefaults.standardUserDefaults().setBool(self.rembSwich.on, forKey: "RmbPwdKey")
//设置同步
NSUserDefaults.standardUserDefaults().synchronize()
2.重新登陆读取配置信息:
//读取上次配置
self.nameField.text =
NSUserDefaults.standardUserDefaults().valueForKey("UserNameKey") as String!
self.pwdField.text = NSUserDefaults.standardUserDefaults().valueForKey("PwdKey") as String!
self.rembSwich.on = NSUserDefaults.standardUserDefaults().boolForKey("RmbPwdKey") as Bool!
if (self.rembSwich.on){
self.pwdField.text = NSUserDefaults.standardUserDefaults().valueForKey("PwdKey") as String!
}
//判断是否第一次启动:
if((NSUserDefaults.standardUserDefaults().boolForKey("IsFirstLaunch") as Bool!) == false){
//第一次启动,播放引导页面
println("第一次启动")
//设置为非第一次启动
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "IsFirstLaunch")
}else{
println("不是第一次启动")
}
IOS(swift)-数据存储 · 用NSUserDefaults存储配置信息的更多相关文章
- iOS 应用数据存储方式(XML属性列表-plist)
iOS 应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) ...
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存 ...
- iOS开发UI篇—ios应用数据存储方式(偏好设置)
iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...
- iOS本地数据存储(转载)
看到一篇不错的文章,推荐给大家!!! 应用沙盒 1)每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 2)应用沙盒的文 ...
- iOS应用数据存储的常用方式
iOS应用 数据存储的常用方式 XML属性列表 plist Preference 偏好设置 NSKeyedArchiver 归档 Core Data SQLite3 应用沙盒: Layer: ...
- IOS开发数据存储篇—IOS中的几种数据存储方式
IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09 421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都 ...
- iOS开发UI篇—ios应用数据存储方式(归档)
iOS开发UI篇—ios应用数据存储方式(归档) 一.简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同 ...
- iOS开发技术分享(1)— iOS本地数据存储
iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...
- iOS开发UI篇—ios应用数据存储方式(归档) :转发
本文转发至:文顶顶http://www.cnblogs.com/wendingding/p/3775293.html iOS开发UI篇—ios应用数据存储方式(归档) 一.简单说明 在使用plist ...
随机推荐
- Python3.X与Python2.x的区别
一张图说明Python2.x与Python3.x的不同. Python3.x默认使用Unicode编码.支持中文. 更多介绍请看:https://segmentfault.com/a/11900000 ...
- 使用公用表表达式(CTE)
本文来自:http://blog.csdn.net/songjie521/article/details/3321030 通用表表达式(CTEs)是SQL Server 2005的一项新功能.它们类似 ...
- 【剑指Offer学习】【面试题60:把二叉树打印出多行】
题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印一行. 解题思路 用一个队列来保存将要打印的结点.为了把二叉树的每一行单独打印到一行里,我们须要两个变量:一个变量表示在当前的 ...
- android——ObjectAnimator动画
在新的android sdk中谷歌为我们提供了新的动画实现方式.化繁为简.将以前的animation动画进一步封装,使用起来更加方便. 先来看XML文件: <RelativeLayout xml ...
- mvc 笔记
@{ ViewBag.Title = "主页"; } <div> 这里就是渲染Body啦.~~不需要写神马<asp:Content />,其实因为Rende ...
- 垃圾回收器 Dispose 和 Finalize 的互补作用
假如我们程序有两个窗口 Form1.Form2; 当我们关闭一个窗口的时候,会发出一个 终止响应,并将该窗口对象送入终止队列,公共语言运行库的垃圾回收器跟踪着这个对象的生存期,此时就会调用此对象的基类 ...
- (原+转)Eclipse中Android调用OpenCv
大部分都是参考下面的网址,如果感觉看起来不舒服,可以直接查看原网址.最后遇到了一点问题: Description Resource Path Location Type E:/~\cod ...
- 代码设置layout_weight attribute
代码设置 LinearLayout权重比例之小结: 如果在LinearLayout添加子View,那么只有一个View的时候设置所占的比例一定要设置LinearLayout总weightsum.不然会 ...
- printf--动态指定输出格式长度
char a1[] = {'A', 'B', 'C'}; char a2[] = "world"; printf(, a1, , a2); printf("[%.*s][ ...
- Font Awesome 4.0.3 字体图标完美兼容IE7
1.下载Font Awesome 4.0.3兼容包,http://www.thinkcmf.com/index.php?m=font 2.解压,并放到自己网站系统合适的位置(如果你的站已使用Font ...