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 ...
随机推荐
- 2016 GitHub章鱼猫观察报告之开源统计
导读 GitHub 又发布了一年一度的章鱼猫观察报告.在这个报告中,分别对开源和社区做了一些有趣的统计,现将其中一些有趣的数据和趋势撷取出来分享给大家.完整的报告请移步Github. GitHub 上 ...
- Android 图片滤镜工具——高斯模糊
===================高斯模糊========================= 创建一个 ImageFilter 类(滤镜工具),代码如下: import android.graph ...
- php 批量去空格和注释
原理:php自带函数去注释和空格 => php_strip_whitespace如题,新建文件 re_note.php,将文件放入你要批量去除注释和空格的根目录.然后运行就行了 代码如下: & ...
- 【krpano】高德地图导航插件(源码+介绍+预览)
简介 krpano可以利用js调用第三方网页版地图,因此可以实现导航效果,用来帮助用户导航到我们全景所在的位置. 效果截图如下,在手机端点击左侧按钮,便会对用户进行定位,跳转至高德地图进行导航 ...
- jstl param url redirect import
import标签 import标签用来导入其他页面 属性: * url :引入页面的路径 * context :工程名 * var :将引入的页面保存到一个变量中 * scope :保存到一个作用域中 ...
- preparestatement可以避免注入
之所以PreparedStatement能防止注入,是因为它把单引号转义了,变成了\',这样一来,就无法截断SQL语句,进而无法拼接SQL语句,基本上没有办法注入了. 不使用这个,我们一般做查询或更新 ...
- linux 汇编
nasm的语法和大学教材上8086的汇编伪指令有些差别,指令都是一样的. 编辑器就是普通的编辑器,vim,emacs,gedit,kate源文件类型为ascii码的plain text 编译用gcc或 ...
- Quartz Job基本示例
项目中用到job的主要是各种公告,比如活动开始公告这种,以此为例: public class Domain { public Domain() { AnnounceManager.getIns().s ...
- .NET 反射概述
反射 反射提供了封装程序集.模块和类型的对象(Type 类型).可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性.如果代码中使用了属性 ...
- java 数组中插入新的元素
class Demo1 { public static void main(String[] args) { /* 5. 有如下歌曲数组 String[] musics = new String[]{ ...