【通讯录案例-保存开关状态 Objective-C语言】

一、接下来,我们要实现一个什么功能呢,在这个,我们的“通讯录”里边儿,

通知

1.我们有两个开关,“记住密码”、“自动登录”、两个开关,

如果我们点击“记住密码”,

通知

如果我们点击“记住密码”,然后呢,我把这个程序关了,我下一次再打开这个程序的时候,这个用户名和密码,都会有,

然后呢,包括,如果我点击“自动登录”,

通知

让它“自动登录”,那么,我下一次,再打开这个应用的时候,它会自动的帮我去“登录”,

通知

如果我点击“自定登录”,它会自动的帮我去登录到这个界面,

通知

2.首先呢,既然你要“记住密码”的话,那么

1)你“用户名”、和、“密码”、这两个文本框中的内容,一定也是要保存的,

2)然后呢,这个“记住密码”这个开关的状态,和“自动登录”这个开关的状态,也是需要保存的

3)所以,这四个东西,都是需要去保存,

通知

然后呢,接下来,我们就来做一下,

3.首先,我们把之前,为了方便测试,这个“用户名”、和、“密码”、文本框里的内容,先删掉,

通知

把“用户名”、和、“密码”、里面的“1”、和、“1”、都删掉,

通知

command + R,

通知

都删掉了吧,

5.接下来,我们来保存

1)首先:我们先来把“开关状态”保存了,再来说“用户名”、“密码”的问题,

首先,当我们,什么时候,应该去保存开关的状态,

点击,点击什么,

一点击,就保存?

对,你输入一个“用户名”、“密码”、一个对的、一个错的、

你点了“记住密码”,你还把“错的”记住?

通知

肯定是在“登录”成功以后,是在“成功”以后,

也不是说完全是“点击登录”,是在“登录成功”以后,

才应该去保存这些状态,

所以呢,我们,应该先找到“登录成功”的这一块儿代码,

是在LoginViewController.m里面,有一个方法,叫做“login”,

通知

在这儿,应该去保存我们这个“状态”,

// 保存状态

通知

保存的这个状态,我们用UserDefaults,来保存,

这个“用户名”、和、“密码”,实际上,也可以通过UserDefaults,来保存,

当然,我们真实应用的“用户名”、和、“密码”,肯定是不能保存到本地的,

我们现在是在模拟而已,

因为,现在大家还没有学习网络,

6.好,我们现在先来保存一下“开关状态”,通过“偏好设置”,偏好设置那个类,叫什么,还记得吗

NSUserDefaults

通知

NSUserDefaults *ud = [ ];

它是一个单例的,

通知

等于NSUserDefaults standardUserDefaults

通知

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

通知

然后呢,通过它呢,去保存

ud

通知

好,保存的,我们这两个开关状态,都是什么类型的,BOOL吧,

通知

BOOL吧,所以呢,setBOOL,

通知

setBOOL:(BOOL) forKey:(NSString *)

通知

然后呢,BOOL类型的,首先,我们保存“记住密码”,self.remPassword

通知

self.remPassword.isOn,的这个状态,

通知

[ud setBOOL:self.remPassword.isOn forKey:(NSString *)];

通知

它当前是“开的”、还是“关的”,我就直接保存,就行了,

然后呢,for一个Key,这个Key呢,@“”

通知

这个Key呢,我们写一个,选中前面这个remPassword,command + C、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/466294.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【粉丝福利社】Flutter小白开发——跨平台客户端应用开发学习路线(文末送书-完结)

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主&#xf…

Linux第48步_编译正点原子的出厂Linux内核源码

编译正点原子的出厂 Linux 内核源码,为后面移植linux做准备。研究对象如下: 1)、linux内核镜像文件“uImage” 路径为“arch/arm/boot”; 2)、设备树文件“stm32mp157d-atk.dtb” 路径为“arch/arm/boot/dts” 3)、默认配置文件“stm32m…

IDEA Ultimate下载(采用JetBrain学生认证)

IDEA Ultimate版本下载 Ulitmate是无限制版(解锁所有插件,正版需要付费。学生可以免费申请许可)Community是开源社区版本(部分插件不提供使用,比如Tomcat插件。免费) 我们将通过学生认证获取免费版。 Je…

线性判别分析(LDA)

一、说明 LDA 是一种监督降维和分类技术。其主要目的是查找最能分隔数据集中两个或多个类的特征的线性组合。LDA 的主要目标是找到一个较低维度的子空间,该子空间可以最大限度地区分不同类别,同时保留与歧视相关的信息。 LDA 是受监督的,这意…

PKI - 借助Nginx实现_客户端使用自签证书供服务端验证

文章目录 Pre概述在 Nginx 中实现客户端使用自签名证书供服务器验证1. 生成客户端密钥对2. 生成自签名客户端证书3. 配置 Nginx4. 重启 Nginx 修5. 验证 在浏览器中安装客户端证书以便进行访问 Pre PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 PKI - 数…

接口测试框架分析

框架大体上已经写完了,不过说实话好多代码让我自己写我也写不出来,那该怎么办呢?很简单,把现在已经写好的代码保存起来,等用的时候拿出来复制粘贴就好了,如果你是大神,自己会写,那就…

mxxWechatBot主动发送消息至微信

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 免责声明:该工具仅供学习使用,禁止使用该工具从事违法活动,否则永久拉黑封禁账号!!!本人不对任何工具的使用负责&am…

C++多态重难点

CSDN上已经有很多关于C多态方面的一些系统介绍了,但是我看了一下一些有关于多态问题的细节问题文章较少,因此我想要出一片文章重点讲一讲我认为比较重点且容易被遗忘的知识点,一些比较基本的知识这里就不过多赘述了,可以参考其他优…

AtCoder Beginner Contest 340(A-G)

A - Arithmetic Progression (atcoder.jp) 1.思路&#xff1a;循环输出即可 2.代码&#xff1a; #include <bits/stdc.h> #define rep(i,z,n) for(int i z;i < n; i) #define per(i,n,z) for(int i n;i > z; i--) #define PII pair<int,int> #define fi f…

2024年2月5日-2月11日周报

论文阅读 1. 本周计划2. 完成情况2.1 论文摘要2.2 网络结构2.3 损失函数2.4 优化器2.5 代码2.5.1 代码结果2.5.2 代码大致流程 4. 总结及收获4. 下周计划 1. 本周计划 阅读论文《Data-Driven Seismic Waveform Inversion: A Study on the Robustness and Generalization》并实…

TELNET 远程终端协议

远程终端协议 TELNET TELNET 是一个简单的远程终端协议&#xff0c;也是互联网的正式标准。 用户用 TELNET 就可在其所在地通过 TCP 连接注册&#xff08;即登录&#xff09;到远地的另一个主机上&#xff08;使用主机名或 IP 地址&#xff09;。 TELNET 能将用户的击键传到…

为什么总有人觉得前端很简单?尤其是水平半瓶水的人。

造成这个印象的原因很多&#xff0c;贝格前端工场结合自己的经验&#xff0c;为大家揭开这个谜底。低端的前端确实简单&#xff0c;但是高级阶段确实不简单。 缺乏深入了解&#xff1a; 有些人可能只是对前端开发有一些浅显的了解&#xff0c;没有深入研究过前端开发的技术和知…