当在开发的过程中,我们可能需要记录一下登陆过的账号密码,为了用户方便登录时再次操作。

举个例子:当我们退出登录的时候,换一个账号登录的时候我们就可以在记录的账号列表中选择想要的账号,直接就可以登录了。可以方便用户登录。

这个功能很明显我们没有必要通过后台来实现,前台实现就可以了,那我们要怎么实现这个功能呢?

首先我们考虑的方式有很多,比较方便的就是plist文件和数据库,但是很明显,我们创建plist文件更简单,可以在沙盒路径下或者工程路径下直接查看

我们已plist文件为例,键值对中key为账号名称,value为账号密码,当然为了方便使用我们要创建单例。下面是实现代码,首先是.h文件


#import <Foundation/Foundation.h>@interface UserNameAndPassWord : NSObject/**创建单例,返回始终为一个对象@return self*/
+ (UserNameAndPassWord *)sharedManager;/**返回所有数据@return 字典*/
- (NSMutableDictionary*)getAllNameAndPassWord;/**根据key来删除某一行的数据@param key 所需要的key*/
- (void)deleteDataWithDataKey:(NSString *)userName;/**plist 文件的数据插入,将用户名和密码进行储存@param name 有户名@param passWord 密码*/
- (void)insertUserName:(NSString*)name withPassWord:(NSString*)passWord;@end

接下来是.m文件


#import "UserNameAndPassWord.h"@implementation UserNameAndPassWord/**创建单例,返回始终为一个对象@return self*/
+ (UserNameAndPassWord *)sharedManager{static UserNameAndPassWord *httpRequst = nil;static dispatch_once_t predicate;dispatch_once(&predicate, ^{httpRequst = [[self alloc] init];[self creatUserNameAndPassWordPList];});return httpRequst;
}/**创建plist文件,进行用户数据储存*/
+ (void)creatUserNameAndPassWordPList{NSString *plistPath = [PATH_STRING stringByAppendingPathComponent:@"UserNameAndPassWord.plist"];//判断是否已经创建文件if ([[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {NSLog(@"UserNameAndPassWord.plist文件已经存在!");}else {//plist文件没有被创建NSMutableDictionary *rootDic = [[NSMutableDictionary alloc] init];NSMutableDictionary *subDic = [[NSMutableDictionary alloc] init];[rootDic setObject:subDic forKey:@"UserNameAndPassWord"];//写入到文件[rootDic writeToFile:plistPath atomically:YES];}
}/**返回所有数据@return 数组*/
- (NSMutableDictionary*)getAllNameAndPassWord{NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"UserNameAndPassWord.plist"];NSMutableDictionary *rootDic = [[[NSMutableDictionary alloc] initWithContentsOfFile:path] mutableCopy];return [rootDic objectForKey:@"UserNameAndPassWord"];
}/**根据key来删除某一行的数据@param key 所需要的key*/
- (void)deleteDataWithDataKey:(NSString *)userName{//获取路径NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"UserNameAndPassWord.plist"];NSMutableDictionary *rootDic = [[[NSMutableDictionary alloc] initWithContentsOfFile:path] mutableCopy];NSMutableDictionary *studentInfo = [rootDic objectForKey:@"UserNameAndPassWord"];[studentInfo removeObjectForKey:userName];[rootDic setValue:studentInfo forKey:@"UserNameAndPassWord"];//写入到文件[rootDic writeToFile:path atomically:YES];
}/**plist 文件的数据插入,将用户名和密码进行储存@param name 有户名@param passWord 密码*/
- (void)insertUserName:(NSString*)name withPassWord:(NSString*)passWord{//获取路径NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"UserNameAndPassWord.plist"];NSMutableDictionary *rootDic = [[[NSMutableDictionary alloc] initWithContentsOfFile:path] mutableCopy];NSMutableDictionary *studentInfo = [rootDic objectForKey:@"UserNameAndPassWord"];NSString *userPassWord = [studentInfo objectForKey:name];userPassWord = passWord;[studentInfo setValue:userPassWord forKey:name];//写入到文件[rootDic writeToFile:path atomically:YES];
}

以上就实现了数据的插入、删除和获取,下面是使用代码

首先获取数据:

@property (strong, nonatomic) NSMutableDictionary *dataSource;//获取所有数据,里面数据存储形式, key 为 账户名  value 为 密码
_dataSource = [[UserNameAndPassWord sharedManager]getAllNameAndPassWord];

下面是删除数据:

[[UserNameAndPassWord sharedManager]deleteDataWithDataKey:@"用户名"];

下面是添加用户账号和密码:

[[UserNameAndPassWord sharedManager]insertUserName:phoneNumber withPassWord:passWord];

这样我们就可以实现获取记录的所有账号和密码,就可以实现用登录时获取记录

iOS 手机记录登录账号密码列表相关推荐

  1. python小练习--模拟用户登录,(3次重试机会,登录成功展示登录账号密码)

    知识点使用:1.格式化输出的两种方法---% .formate 2.while循环的使用,及跳出循环的两种方法---break(跳出循环体).continue(结束本次循环,继续下次循环) 3.if条 ...

  2. Tomcat设置登录账号密码

    Tomcat设置登录账号密码 VV-酱 进入本地安装的tomcat/conf文件下找到 tomcat-users.xml 并编辑(编辑前记得关闭tomcat) 在最后结束标签上面加上这段话 <u ...

  3. android密码忘记了vivo,vivo手机忘了账号密码怎么办?vivo手机账号密码找回教程...

    vivo手机和oppo手机作为今年手机行业的黑马可谓出尽了风头,在大多数手机走下坡路的时候,vivo.oppo两个品牌的手机确可以逆势而上,可见这两个品牌的手机多么牛,但是再牛的手机也有忘记账号密码的 ...

  4. 计算机登陆用户显示黑屏,win7系统电脑开机输入登录账号密码后出现黑屏的原因分析及两种解决方法...

    一位用户说win7开机输入登录账号密码后出现黑屏,这是怎么回事呢?这种情况怎么解决呢?下面脚本之家的小编就带来win7系统电脑开机输入登录账号密码后出现黑屏的原因分析及解决方法,一起来看看吧. 故障原 ...

  5. app 登录成功后 保存登录账号 密码 以及读取

    开篇口号:"不抄别人的水文 总结自己的经验 学习记录新的知识 为有需要的朋友提供准确的经验分享!" 在app开发中,保存当前登录账号.密码是最基本功能. 在验证账号.密码正确后 写 ...

  6. Spring Security (一) : 设置登录账号密码的三种方式

    首先新建一个SpringBoot工程 引入对应依赖 <dependency><groupId>org.springframework.boot</groupId>& ...

  7. WGCLOUD默认登录账号密码是什么

    默认账号/密码:admin/111111 默认账号/密码可以在配置文件server/config/application.yml中修改,如下 #管理员登陆账号account: admin#管理员登陆账 ...

  8. nacos server默认的登录账号密码

    默认的账号密码都是 nacos 登录成功后,如下:

  9. 保存git登录账号密码

    2019独角兽企业重金招聘Python工程师标准>>> 先在控制台输入git的命令 git config --global credential.helper store 使用git ...

最新文章

  1. SQL 全角半角转换-(摘抄)
  2. 考研 考研爬虫大数据分析专业热度
  3. 圆形比例分布图怎么做_解读宝山区2035总体规划:建设用地的比例在上海非中心城区中最高...
  4. 汇编题目:编写包含多个功能子程序的中断例程
  5. MongoDB之GridFS
  6. Linux多线程工作笔记0003---C语言中%p,%u,%lu都有什么用处
  7. 论文schedule
  8. 学python后到底能干什么-学会Python后都能做什么?网友们的回答简直不要太厉害...
  9. SpringCloud集成分布式事务LCN
  10. java整理快捷鍵_常用Eclipse快捷键整理
  11. 基于微信小程序的毕业设计题目(29)php家政服务预约小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  12. php导入word文件怎么打开,phpword 导入word
  13. java.sql.SQLException: Incorrect string value: ‘\xE4\xB8\x8A\xE6\xB5\xB7‘ for column ‘xxx‘
  14. 网页设计之标题栏显示当前系统日期
  15. 【Android】Logcat使用
  16. 工具篇 之 简单掌握 Chrome 以及 IE DeBug 。。。
  17. 2014迅雷校园招聘笔试题(C++)
  18. Unity使用ShaderGraph,设置SRP的RenderPipelineAsset后,原有材质显示紫色的问题
  19. JavaScript经典效果集锦(转)
  20. 已知空间四点,求四点拟合的球圆心和半径

热门文章

  1. 2的32次方减1用python_3.Python入门
  2. vue+elementui最简单的面包屑写法
  3. 13:求圆的周长和面积
  4. Python+pyqt4 山寨美图秀秀的美肤功能
  5. 功能齐全的 ESP32 智能手表,具有多个表盘、心率传感器硬件设计
  6. Java设计模式超级详细分析(包含代码)
  7. 计算机毕业设计Java“小蜜蜂”校园代取快递系统(源码+系统+mysql数据库+lw文档)
  8. 后网盘时代:百度问鼎、阿里紧追、360们跟进
  9. [爬虫实践blog]之——GET公众号封面图
  10. 搜狗收录查询 怎么查搜狗是否收录过网页