1 //

2 //ViewController.m3 //KeyChain4 //

5 //Created by apple on 14-12-26.6 //Copyright (c) 2014年 ll. All rights reserved.7 //8

9 #import "ViewController.h"

10 static NSString * const KEY_IN_KEYCHAIN = @"com.wuqian.app.allinfo";//字典在keychain中的key

11 static NSString * const KEY_PASSWORD = @"com.wuqian.app.password"; //密码在字典中的key

12

13 @interfaceViewController ()14 {15 UITextField * _field; //输入密码

16 UILabel *_psw; //显示密码

17 }18

19 @end

20

21 @implementationViewController22

23 - (void)viewDidLoad {24 [super viewDidLoad];25

26 self.view.backgroundColor =[UIColor whiteColor];27

28 UILabel * labelName = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 100, 30)];29 labelName.text = @"密码是:";30

31

32 _field = [[UITextField alloc] initWithFrame:CGRectMake(100, 80, 200, 30)];33 _field.placeholder = @"请输入密码";34 _field.borderStyle =UITextBorderStyleRoundedRect;35

36 _psw = [[UILabel alloc] initWithFrame:CGRectMake(100, 30, 200, 30)];37 _psw.backgroundColor =[UIColor yellowColor];38

39 UIButton *btn =[UIButton buttonWithType:UIButtonTypeSystem];40 btn.frame =CGRectMake(100, 160, 200, 30);41 btn.backgroundColor = [UIColor colorWithRed:0 green:0.4 blue:0.1 alpha:0.8];42 btn.tintColor =[UIColor redColor];43 [btn setTitle:@"submit"forState:UIControlStateNormal];44 //[btn setTitle:@"正在提交" forState:UIControlStateSelected];

//btn.layer.cornerRadius=8; 圆角

//btn.layer.masksToBounds = YES;

//btn.layer.borderWidth = 5;

//btn.layer.borderColor=(__bridge CGColorRef)([UIColor redColor]);

45

46 [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];47 //UIGestureRecognizer *tap = [[UIGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];48 //[self.view addGestureRecognizer:tap];

49

50

51

52 [self.view addSubview:btn];53 [self.view addSubview:_field];54 [self.view addSubview:labelName];55 [self.view addSubview:_psw];56 //Do any additional setup after loading the view, typically from a nib.

57 }58

59 - (void)didReceiveMemoryWarning {60 [super didReceiveMemoryWarning];61 //Dispose of any resources that can be recreated.

62 }63 //- (void)tap:(UIGestureRecognizer*)gr64 //{65 //

66 //

67 //[_field resignFirstResponder];68 //}

69

70 - (void)btnClick:(id)sender71 {72 [ViewController savePassWord:_field.text];73 _psw.text =[ViewController readPassWord];74

75 if (![_field isExclusiveTouch]) {76 //Setting this property to YES causes the receiver to block the delivery of touch events to other views in the same window. The default value of this property is NO.

77 [_field resignFirstResponder];//收回键盘

78

79 }80

81 }82

83 + (void)savePassWord:(NSString *)password84 {85 NSMutableDictionary *usernamepasswordKVPairs =[[NSMutableDictionary alloc] init];86 [usernamepasswordKVPairs setObject:password forKey:KEY_PASSWORD];87 [KeyChain save:KEY_IN_KEYCHAIN data:usernamepasswordKVPairs];88 }89

90 + (id)readPassWord91 {92 NSMutableDictionary *usernamepasswordKVPairs = (NSMutableDictionary *)[KeyChain load:KEY_IN_KEYCHAIN];93

94 return[usernamepasswordKVPairs objectForKey:KEY_PASSWORD];95

96 }97

98 + (void)deletePassWord99 {100 [KeyChain delete:KEY_IN_KEYCHAIN];101

102 }103

104 @end

安卓设置keychain_简单实现KeyChain实例相关推荐

  1. 安卓设置keychain_使用Android KeyChain安全存储对称密钥

    鉴于无法使用 Android KeyChain API存储对称密钥,以下是存储对称密钥的安全方法: 第一部分:密钥生成和存储 >生成symmetric_key >生成(private_ke ...

  2. 安卓设置keychain_共享keychain数据

    [共享keychain数据] 当往keychain中插入数据时,默认的 kSecAttrAccessGroup就是App自身的BundleID. [官方文档] You can add a keycha ...

  3. 简单实现KeyChain实例

    目录结构如下: AppDelegate.m 1 // 2 // AppDelegate.m 3 // KeyChain 4 // 5 // Created by apple on 14-12-26. ...

  4. 安卓设置均衡器 Equalizer

    前言 工作与音乐相关的,所以避免不了工作中要涉及到 Equalizer .中文叫均衡器,缩写就是 EQ,和情商的缩写一样.我先抛砖引玉,说直白点就是把声音优化来更好听.我直接搬移一段维基百科的说明,这 ...

  5. php xml对象解析_php解析xml 的四种简单方法(附实例)

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  6. Java Tread多线程(0)一个简单的多线程实例

    作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39341887 本文演示,一个简单的多线程实例,并简单分析一下线程. 编程多 ...

  7. Python3——简单的TCP实例

    Python3网络编程--简单的TCP实例 服务器:创建套接字--绑定服务器地址--监听连接--接受连接--数据接收/发送 客户端:创建套接字--连接服务器地址--数据接收/发送 "&quo ...

  8. 递归算法(python),汉诺塔问题,斐波那契数列,一个简单的递归实例,用递归实现阶乘,用递归查看目录及文件

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请 ...

  9. 安卓与HTML简单的交互使用

    安卓与HTML简单的交互使用 实现通过java代码与HTML的一个互相操作. 准备工作: 1.新建Android工程,在布局文件中添加WebView控件. 2.准备一个HTML文件,放在src/mai ...

最新文章

  1. matlab 卷积conv2用法
  2. tensorflow量化感知训练_tensorflow
  3. Django实战教程 分页列表
  4. MySQL集群中主从切换
  5. 媒资管理系统的应用与发展
  6. 拦截器BridgeInterceptor分析
  7. UVA156 Ananagrams【map+vector】
  8. BXP无盘网络方案及设备选用(转)
  9. 为什么用户在注册时需要使用邮箱或手机号作为注册名?
  10. h5分享到微信唤起app功能
  11. Windows 10的“稳定”于2019年4月更新将在某些游戏中导致BSOD
  12. 另一种活法之——不要总把自己当千里马
  13. 24V电磁铁电磁特模块电路分析
  14. c++win32项目 如何显示后再删除一个绘图_以weblogic为中间件,部署一个项目,需如何做?...
  15. 百度地图-根据经纬度定位示例-百度地图单点标注(整理)
  16. esp ghost引导_UEFI+GPT裸机装GHOST版Windows系统ESP分区引导模块
  17. sap采购定价过程配置
  18. java游戏主角叶开,逸之老板的天机城与叶开大神女魃墓,决赛场上谁更抢眼?...
  19. 从阿里云邮箱迁移至网易邮箱
  20. SRM587 (div2)

热门文章

  1. 从dtx文件得到cls文件
  2. Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)
  3. Fly.Box 2.0.2 企业网盘,企业云盘解决方案
  4. bonjour 概述
  5. 小程序登录、支付、上传图片流程
  6. 许亲亲--1101210998 第三次作业
  7. 计算机专业相关的职业技术证书有哪些,你知道吗?
  8. 免费的小程序微商城系统它不香吗?
  9. XWW的难题(bzoj 3698)
  10. 转行产品经理,必看的避坑指南!