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 ...
随机推荐
- Hibernate参数一览表
参考文章地址:http://www.blogjava.net/i369/articles/194855.html Hibernate 参数设置一览表 属性名 用途 hibernate.dialect ...
- Angularjs 脏值检测
文章转自:http://www.ituring.com.cn/article/39865 构建自己的AngularJS,第一部分:Scope和Digest 原文链接:http://teropa.inf ...
- winfrom 隐藏任务栏(win7)
1:新建winfrom 窗体应用程序 2:拖入contextMenuStrip.notifyIcon 2个控件 3:如图 4:code: 注意:复制控件事件要注册 using System; usin ...
- JavaScript高级程序设计学习笔记--事件
HTML事件处理程序 <input type="button" value="Click Me" onclick"showMessage()&q ...
- iOS之ToolBar定制
ToorBar的定制 在诸如社区类的app里面,很多都涉及到用户发布消息,如现今最流行的新浪微博,每条信息底部都会有个工具条,正如下图所示,有转发.评论和点赞三个按钮的工具条. 结构 1.作为一个独立 ...
- SqlServer按时间自动生成生成单据编号
SET @_tmpDateTime = GETDATE() EXEC dbo.Dtw_Common_GenerateProofCode @ProofType = 'SO',@WhsCode=@WhsC ...
- tensorflow添加自定义的auc计算operator
tensorflow可以很方便的添加用户自定义的operator(如果不添加也可以采用sklearn的auc计算函数或者自己写一个 但是会在python执行,这里希望在graph中也就是c++端执行这 ...
- js中时间戳转化成时间格式
function formatDate(timestamp){ var test = new Date(parseInt(timestamp) * 1000); var $year = test.ge ...
- LeetCode——Best Time to Buy and Sell Stock II (股票买卖时机问题2)
问题: Say you have an array for which the ith element is the price of a given stock on day i. Design a ...
- 【Mybatis架构】输入、输出映射
前言综述: 其实在我们分析Mybatis的查询缓存或者是一些简介的时候,我们就不难看到有关于Mybatis输入输出映射的东西,比如说: 但是一直没有想起来系统的来总结一下这方面的相关知识,偶然看到 ...