IOS NSUserDefault 记住用户名及密码功能的实例代码

一般的登录界面都会有一个记住密码的选项,要实现这个功能可以使用NSUserDefault,这里只是讲解明文的处理方式,虽然这样是有一定的风险性的但是目前只是了解如何实现这个功能:

首先声明一个NSUserDefault对象:

let userDefaults = NSUserDefaults.standardUserDefaults()  //本地操作所需

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

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

///检查记住密码标记,如果为YES,那么就读取用户名和密码并为TextField赋值
    ///并将图标背景设置为记住状态,如果为NO,那么设置背景为未记住状态
    if(userDefaults.boolForKey("isRememberPsd"))
    {
      userDefaults.setBool(true, forKey: "isRememberPsd")
      isRemberPW.setBackgroundImage(UIImage(named: "pwd_checked.png"), forState: .Normal)
      self.UserName.text = userDefaults.stringForKey("userName")
      self.PassWord.text = userDefaults.stringForKey("userPsw")
    }else if(!userDefaults.boolForKey("isRememberPsd"))
    {
      userDefaults.setBool(false, forKey: "isRememberPsd")
      self.isRemberPW.setBackgroundImage(UIImage(named:"pwd_unchecked.png"), forState: .Normal)
    } 

在登录按钮的点击事件中添加如下代码:

if(userDefaults.boolForKey("isRememberPsd"))
    {
      userDefaults.setValue(userName, forKey: "userName")
      userDefaults.setValue(userPsw, forKey: "userPsw")
    } 

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

记住密码按钮的点击事件的处理:

//读取本地的key为“isRememberPsd”的状态,YES代表记住密码,NO代表不记住
    ///如果YES,再次点击就需要将图片设置为未记住的样式并改变key的值。
    if(userDefaults.boolForKey("isRememberPsd"))
    {
      self.isRemberPW.setBackgroundImage(UIImage(named:"pwd_unchecked.png"), forState: .Normal)
      userDefaults.setBool(false, forKey: "isRememberPsd")
    }
    else
    {
      self.isRemberPW.setBackgroundImage(UIImage(named:"pwd_checked.png"), forState: .Normal)
      userDefaults.setBool(true, forKey: "isRememberPsd")
    }
    userDefaults.synchronize() 

这样一个基本的记住密码,并且再下次登录时会自动的为其写入用户名和密码的功能就实现了

总结

以上所述是小编给大家介绍的IOS NSUserDefault 记住用户名及密码功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 详解iOS 计步器的几种实现方式

    这篇文章介绍两种可以获取计步数据的方法,一种是采用CMPedometer获取手机计步器数据,另一种是采用HealthKit框架从手机健康App中获取计步数据.另外玩了一下写入数据到健康App.有描述不当之处,望指点. 花絮(用HealthKit框架构建app,写入数据到苹果健康app中,QQ和Keep等第三方app的运动数据都会随之改变,猜测它们的运动数据是直接从苹果健康app中获取,而且没有过滤掉其它数据来源.而微信运动的数据不会变,猜测其来源可能是使用CMPedometer类获取的,因为测试

  • iOS在Block中修改外部变量值的实现代码

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 第一种是可以修改 static 全局变量:第二种是可以修改用新关键字 __block 修饰的变量. __block int blockLocal = 100; static int staticLocal = 100; void (^aBlock)(

  • iOS 获取设备唯一标示符的方法详解

    在开发中会遇到应用需要记录设备标示,即使应用卸载后再安装也可重新识别的情况,在这写一种实现方式--读取设备的UUID(Universally Unique Identifier)并通过KeyChain记录. 首先iOS中获取设备唯一标示符的方法一直随版本的更新而变化.iOS 2.0版本以后UIDevice提供一个获取设备唯一标识符的方法uniqueIdentifier,通过该方法我们可以获取设备的序列号,这个也是目前为止唯一可以确认唯一的标示符.好景不长,因为该唯一标识符与手机一一对应,苹果觉得

  • ios原生和react-native各种交互的示例代码

    需求:让一个表格视图中的cell能左滑删除,效果图如下: 目前RN中的ListView主要问题是复用,以及其他一些细节如索引视图.左滑删除.编辑等,要想在RN上自定义实现原生的这种效果尚有一定的问题,在必要时可以考虑使用原生的UITableView,数据从RN端传递 1.原生端编写表格控制器NativeTableViewController,暴露的属性如下 datas为表格数据源,另外一个为需要暴露给RN调用用方法. 2.框架只提供了暴露UIView给RN端的接口,所以需要制作一个中转UIVie

  • vue 里面使用axios 和封装的示例代码

    vue官方推荐使用 axios发送请求 首先上需求 1.需要封装全局调用 2.返回一个promise对象 3.错误全局统一处理 4.除了登录界面token带入头部 5.登录时候把用户信息自动存到vuex里面 首先上封装代码 /** * User: sheyude * Date: 2017/8/23 0023 * Time: 下午 13:15 * */ import axios from 'axios'; // 导入配置文件 配置文件就导入的请求的前缀地址 import {defaults} fr

  • IOS 开发之实现取消tableView返回时cell选中的问题

    IOS 开发之实现取消tableView返回时cell选中的问题 在对表格UITableView操作时,有时当用户选中表格行后,需要自动取消选择.实现这种效果,其原理是选中表格行时,会调用 didSelectRowAtIndexPath方法,只要在这个方法中,调用performSelector执行取消选中表格行的方法. 示例代码如下: - (void) unselectCurrentRow { // Animate the deselection [self.tableView deselect

  • iOS中利用CoreAnimation实现一个时间的进度条效果

    在iOS中实现进度条通常都是通过不停的设置progress来完成的,这样的进度条适用于网络加载(上传下载文件.图片等).但是对于录制视频这样的需求的话,如果是按照每秒来设置进度的话,显得有点麻烦,于是我就想直接用CoreAnimation来按时间做动画,只要设置最大时间,其他的就不用管了,然后在视频暂停与继续录制时,对动画进行暂停和恢复即可.录制视频的效果如下: 你可以在这里下载demo 那么接下来就是如何用CoreAnimation实现一个进度条控件了. 首先呢,让我们创建一个继承自CASha

  • IOS NSUserDefault 记住用户名及密码功能的实例代码

    一般的登录界面都会有一个记住密码的选项,要实现这个功能可以使用NSUserDefault,这里只是讲解明文的处理方式,虽然这样是有一定的风险性的但是目前只是了解如何实现这个功能: 首先声明一个NSUserDefault对象: let userDefaults = NSUserDefaults.standardUserDefaults() //本地操作所需 然后根据是否记住密码按钮的状态来判断是否要为用户名和密码设置值,如果是记住密码,那么需要取出需要记住的密码,并且为这两个TextField赋值

  • Android通过SharedPreferences实现自动登录记住用户名和密码功能

    最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现. SharedPreferences简介 SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/<包名>/shared_prefs目录下.SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现

  • iOS开发中Swift 指纹验证功能模块实例代码

    iOS调用TouchID代码: override func viewDidLoad() { super.viewDidLoad() let context = LAContext() var error: NSError? = nil let canEvaluatePolicy = context.canEvaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, error: &error) as Bool if error

  • Android实现记住用户名和密码功能

    Android 实现记住用户名和密码的功能是通过SharedPreference 存储来实现的.创建一个复选按钮,通过按钮的否选取来进行事件处理.若按钮选中存储账号和密码的信息.若按钮没有选中,则清空账号和密码的信息. 结果演示: 源代码下载地址: https://github.com/GXS1225/Android-----.git 分析 (1)判断是否输入了账号和密码 if(name.trim().equals("")){ Toast.makeText(this, "请您

  • Javascript实现登录记住用户名和密码功能

    话不多说,请看代码: <script type="text/javascript"> $(document).ready(function () { $("#UserAccount").focus(); //记住用户名和密码 $('#remebers').click(function () { if ($("#UserAccount").val() == "") { alert("用户名不能为空!&quo

  • 通过jquery.cookie.js实现记住用户名、密码登录功能

    Cookies 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jquery.cookie.js: 下载:http://plugins.jquery.com/cookie/ <script type="text/javascript" src="js/jquery.min.js"></script> <sc

  • 防止浏览器记住用户名及密码的简单实用方法

    如何设置能禁止浏览器自动保存表单信息,比如用户名,密码? 现在很多浏览器都有自动填写功能,我在input上使用了autocomplete="off",但在有的浏览器上还是被记住了用户名跟密码,请问有没有更有效及简便的方法来防止浏览器记住用户名及密码? 1.针对浏览器记住密码 1).首先大部分浏览器都是根据表单域的type="password"来判断密码域的,所以针对这种情况可以采取"动态设置密码域"的方法: 复制代码 代码如下: <inpu

  • 使用jquery的cookie实现登录页记住用户名和密码的方法

    对于初学者来说,登录页记住用户名和密码的功能是经常会遇到的(通常会用javaee的api去实现),今天为大家介绍在前端页面直接用jquery实现该功能(比传统的方法简单多了),长话短说直接进入正题: 在项目中加入jquery.js和jquery.cookie.js两个依赖文件,并加入对应的页面中如: <script type="text/javascript" src="${BasePath}/static/assets/js/jquery.cookie.js"

  • JAVA记住密码功能的实现代码

    准备:SSM框架,mysql数据库 用户表 user 实体类: public class User { /** * 主键id */ private Integer userId; /** * 账号 */ private String username; /** * 密码 */ private String password; public Integer getUserId() { return userId; } public void setUserId(Integer userId) {

  • Android制作登录页面并且记住账号密码功能的实现代码

    一.页面搭建 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmln

随机推荐