swift-UserDefaults控制账号和密码
import UIKit
class FiveVC: UIViewController {
//MARK:-------- 全局 常量 设置
let IsFirstLaunch = "IsFirstLaunch"
let UserName = "UserName"
let UserPwd = "UserPwd"
var nameField = UITextField()
var PwdField = UITextField()
override func viewDidLoad() {
super.viewDidLoad()
nameField = UITextField(frame:CGRect(x:,y:,width:,height:))
nameField.backgroundColor = UIColor.cyan
nameField.placeholder = "请输入姓名"
nameField.borderStyle = UITextBorderStyle.roundedRect
self.view.addSubview(nameField)
PwdField = UITextField(frame:CGRect(x:,y:,width:,height:))
PwdField.backgroundColor = UIColor.cyan
PwdField.placeholder = "请输入密码"
PwdField.borderStyle = UITextBorderStyle.roundedRect
self.view.addSubview(PwdField)
let keetBtn = UIButton.init()
keetBtn.frame = CGRect(x:,y:,width:,height:)
keetBtn.backgroundColor = UIColor.cyan
keetBtn.setTitle("保存", for: UIControlState.normal)
keetBtn.setTitleColor(UIColor.black, for: UIControlState.normal)
keetBtn.addTarget(self, action: #selector(pressKeepBtn), for: UIControlEvents.touchUpInside)
self.view.addSubview(keetBtn)
let reduceBtn = UIButton.init()
reduceBtn.frame = CGRect(x:,y:,width:,height:)
reduceBtn.backgroundColor = UIColor.cyan
reduceBtn.setTitle("清空", for: UIControlState.normal)
reduceBtn.setTitleColor(UIColor.black, for: UIControlState.normal)
reduceBtn.addTarget(self, action: #selector(pressReduceBtn), for: UIControlEvents.touchUpInside)
self.view.addSubview(reduceBtn)
let userName = LCDUserDefaultsGet(key: UserName) as! String
let userPwd = LCDUserDefaultsGet(key: UserPwd) as! String
print("\(userName):\(userPwd)")
if userName.characters.count > {
freshDate(isOk: true, userName: userName, userPwd: userPwd)
}
/*
//obj 为bool值的时候 调用
if LCDUserDefaultsBool(key: UserName) {
let userName = LCDUserDefaultsGet(key: UserName) as! String
let userPwd = LCDUserDefaultsGet(key: UserPwd) as! String
print("\(userName):\(userPwd)")
}
print(LCDUserDefaultsBool(key: UserName))
*/
}
//刷新数据
func freshDate(isOk:Bool, userName:String, userPwd:String){
if isOk {
nameField.placeholder = ""
nameField.text = userName
PwdField.placeholder = ""
PwdField.text = userPwd
}else{
nameField.placeholder = "请输入姓名"
nameField.text = ""
PwdField.placeholder = "请输入密码"
PwdField.text = ""
}
}
//保存数据
func pressKeepBtn(){
if nameField.text?.characters.count == {
alterShow(titles: "请输入姓名")
return
}
if PwdField.text?.characters.count == {
alterShow(titles: "请输入密码")
return
}
LCDUserDefaultsSet(key: UserName,obj: nameField.text as AnyObject)
LCDUserDefaultsSet(key: UserPwd,obj: PwdField.text as AnyObject)
LCDUserDefaultsSyn()
let userName = LCDUserDefaultsGet(key: UserName) as! String
let userPwd = LCDUserDefaultsGet(key: UserPwd) as! String
freshDate(isOk: true, userName: userName, userPwd: userPwd)
alterShow(titles: "数据已保存成功")
}
//清空数据
func pressReduceBtn(){
LCDUserDefaultsSet(key: UserName,obj: "" as AnyObject)
LCDUserDefaultsSet(key: UserPwd,obj: "" as AnyObject)
LCDUserDefaultsSyn()
freshDate(isOk: false, userName: "", userPwd: "")
alterShow(titles: "数据已清空成功")
}
//MARK:------------- LCDUserDefaults
//保存
func LCDUserDefaultsSet(key:String, obj:AnyObject) -> Void {
return UserDefaults.standard.set(obj, forKey: key)
}
//获取
func LCDUserDefaultsGet(key:String) -> AnyObject {
return UserDefaults.standard.value(forKey: key)! as AnyObject
}
//删除
func LCDUserDefaultsRemo(key:String) -> Void {
UserDefaults.standard.removeObject(forKey: key)
}
//判断bool 类型的值
func LCDUserDefaultsBool(key:String) -> Bool {
return UserDefaults.standard.bool(forKey: key)
}
func LCDUserDefaultsSyn() {
UserDefaults.standard.synchronize()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func alterShow(titles:String){
let alertController = UIAlertController(title: "提示",
message: titles, preferredStyle: UIAlertControllerStyle.alert)
let cancelAction = UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel, handler: nil)
let okAction = UIAlertAction(title: "好的", style: UIAlertActionStyle.default,
handler: {
action in
print("点击了确定")
})
alertController.addAction(cancelAction)
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
}
}
swift-UserDefaults控制账号和密码的更多相关文章
- (转)mysql账号权限密码设置方法
原文:http://www.greensoftcode.net/techntxt/2013410134247568042483 mysql账号权限密码设置方法 我的mysql安装在c:\mysql 一 ...
- VSS每次打开都需要服务器账号和密码的解决方法
最近在做的一个项目还在使用非常非常古老的VSS(Microsoft Visual SourceSafe)2005,是的,没有看错,是VSS2005,而不是Git或是SVN.然后我的VSS在安装过后遇到 ...
- livezilla账号或密码修改方法
livezilla的账号和密码不在数据库,保存在php文件里面. 今天想修改一下网站livezilla系统管理员账号和密码,去数据库找了半天没找到,推测可能是存在文件中.搜索了一下,果然是在livez ...
- Django忘记管理员账号和密码的解决办法
看着Django的教程学习搭建网站,结果忘记第一次创建的账号和密码了.结果搭建成功以后,一直无法登陆到管理页面,进行不下去了. 如图所示: 在网上找了很多的方法都不行,最后使用新建一个superuse ...
- (转) mysql的连接,创建账号,修改密码
原文:http://blog.chinaunix.net/uid-20749043-id-1878306.html mysql的连接,创建账号,修改密码 2008-10-13 15:31:29 分类 ...
- linux杂记(十二?) 关于账号和密码的二三事
关于密码的二三事 关于账号和密码的二三事 久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒).那么今天就来谈谈关于linux密码和账号的重要概念. 假如你的主机遭到入侵,那么对方的第一个侵入 ...
- 忘记Django登陆账号和密码的处理方法
Reference: http://nolinux.blog.51cto.com/4824967/1743392 公司部署了一套分布式网络监控系统,使用celery来做的分布式任务队列,针对celer ...
- 假设我的朋友账号分别是v{1,2,3,4,5},且这五人想要共享一个目录,因此应该加入同一个群组,假设这个群组为vbird,且这五个账号的密码均为password.那该如何建置这五个账号?
假设我的朋友账号分别是v{1,2,3,4,5},且这五人想要共享一个目录,因此应该加入同一个群组,假设这个群组为vbird,且这五个账号的密码均为password.那该如何建置这五个账号?#!/bin ...
- eureka注册中心列表页面加账号和密码
正常情况下,注册中心服务启动后,页面是这样的,如下图所示 这样的话,如果注册中心不再内网地址下,有可能就会泄露所有的服务地址信息,增加受攻击的风险,针对这个问题咱们可以这样解决 首先注册中心pom.x ...
随机推荐
- HeapSort 堆排序 基于伪代码实现
此文原创, http://www.cnblogs.com/baokang/p/4735431.html ,禁止转载 GIF 动态图 伪代码 /* From Wikipedia, the free en ...
- shutil复制粘贴和压缩
shutil复制粘贴和压缩 shutil 高级的文件.文件夹.压缩包处理模块 @1).将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open(&quo ...
- 数据库基础和JDBC
一SQL查询 练习: 1.在grade表中查找80-90分的学生学号和分数 select studentid 学号,score 分数 form grade where socre between 80 ...
- position:fixed 属性在iphone 中不起作用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- spring集成常用技术的配置
使用spring集成其他技术,最基本的配置都是模板化的,比如配置视图模板引擎.数据库连接池.orm框架.缓存服务.邮件服务.rpc调用等,以spring的xml配置为例,我将这些配置过程整理出来,并不 ...
- jQuery的.bind()、.live()和.delegate()的区别
参考:http://kb.cnblogs.com/page/94469/ 摘要:jQuery的.bind()..live()和.delegate()之间的区别并非总是那么明显的,然而,如果我们对所有的 ...
- hyperV中修改centos分辨率
grubby --update-kernel=ALL --args="video=hyperv_fb:1366x768"
- java面试题及答案(转载)
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- windows2008r2的时间同步小结
一.在windows2008r2域控的环境下进行时间同步的配置(当已经拥有可以使用的ntp服务器,并知晓ip,客户端到其网络正常): 客户端的配置过程如下: 1.搜索窗口输入 gpedit.msc 打 ...
- 开发常用之在webstorm中使用cmd
而今前端开发经常与cmd打交道,如使用个npm什么的,如果老是在ide和cmd之间切换显得比较繁琐,众多前端利器中我最喜欢的就是webstorm,而webstorm中就可以直接使用cmd,如图1, ...