ios NSUserDefault 记住用户名及密码

来源:互联网 发布:38号车评中心 知乎 编辑:程序博客网 时间:2024/06/05 16:16
一般的登录界面都会有一个记住密码的选项,要实现这个功能可以使用NSUserDefault,这里只是讲解明文的处理方式,虽然这样是有一定的风险性的但是目前只是了解如何实现这个功能:
首先声明一个NSUserDefault对象:
let userDefaults = NSUserDefaults.standardUserDefaults()    //本地操作所需

然后根据是否记住密码按钮的状态来判断是否要为用户名和密码设置值,如果是记住密码,那么需要取出需要记住的密码,并且为这两个TextField赋值。

在viewDidLoad方法中添加如下代码:

[plain] view plain copy
  1. ///检查记住密码标记,如果为YES,那么就读取用户名和密码并为TextField赋值  
  2.        ///并将图标背景设置为记住状态,如果为NO,那么设置背景为未记住状态  
  3.          
  4.        if(userDefaults.boolForKey("isRememberPsd"))  
  5.        {  
  6.            userDefaults.setBool(true, forKey: "isRememberPsd")  
  7.            isRemberPW.setBackgroundImage(UIImage(named: "pwd_checked.png"), forState: .Normal)  
  8.              
  9.            self.UserName.text = userDefaults.stringForKey("userName")  
  10.            self.PassWord.text = userDefaults.stringForKey("userPsw")  
  11.        }else if(!userDefaults.boolForKey("isRememberPsd"))  
  12.        {  
  13.            userDefaults.setBool(false, forKey: "isRememberPsd")  
  14.            self.isRemberPW.setBackgroundImage(UIImage(named:"pwd_unchecked.png"), forState: .Normal)  
  15.        }  
在登录按钮的点击事件中添加如下代码:

[plain] view plain copy
  1. if(userDefaults.boolForKey("isRememberPsd"))  
  2.        {  
  3.            userDefaults.setValue(userName, forKey: "userName")  
  4.            userDefaults.setValue(userPsw, forKey: "userPsw")  
  5.        }  

如果为记住密码的状态,那登录前需要将用户名和密码写入到本地。

记住密码按钮的点击事件的处理:
[plain] view plain copy
  1. //读取本地的key为“isRememberPsd”的状态,YES代表记住密码,NO代表不记住  
  2.        ///如果YES,再次点击就需要将图片设置为未记住的样式并改变key的值。  
  3.           
  4.         if(userDefaults.boolForKey("isRememberPsd"))  
  5.         {  
  6.             self.isRemberPW.setBackgroundImage(UIImage(named:"pwd_unchecked.png"), forState: .Normal)  
  7.             userDefaults.setBool(false, forKey: "isRememberPsd")  
  8.         }  
  9.         else  
  10.         {  
  11.             self.isRemberPW.setBackgroundImage(UIImage(named:"pwd_checked.png"), forState: .Normal)  
  12.             userDefaults.setBool(true, forKey: "isRememberPsd")  
  13.         }  
  14.           
  15.         userDefaults.synchronize()  
这样一个基本的记住密码,并且再下次登录时会自动的为其写入用户名和密码的功能就实现了
原创粉丝点击