登录时本地保存账号密码及关闭ARC的方法

对于登录时保存用户名和密码,苹果官方使用的是KeychainItemWrapper,但使用时有些不便,如在引入KeychainItemWrapper的类中都要关闭arc,不能自定义key,必须使用该类提供的kSecValueData、kSecAttrAccount等。
所以推荐使用第三方类库——SSkeychain,地址在

https://github.com/samsoffes/sskeychain/

它的优点如下:
①无需手动关闭arc,它会自动判断并运行在arc和非arc环境中
②能存储多组账号和密码
使用方法如下:
①项目中引入Security.framework
②将SSKeychain.h和SSKeychain.m导入项目

1 //储存账号密码
2 -(void)storeAccountAndPwd{
3     NSString *accountNum = self.accountField.text;
4     NSString *pwdNum = self.pwdField.text;
5     NSString *serviceName = @"cn.zmfc";
6     [SSKeychain setPassword:pwdNum forService:serviceName account:accountNum];
7 }
8 //service保存的是服务的类型,就是用户名和密码是为哪个应用保存的一个标志。

结果如下:

1 //删除某组特定的账号跟密码
2 NSString *serviceName = @"cn.zmfc";
3 NSArray *accountTemp = [[SSKeychain accountsForService:serviceName] lastObject];
4 NSString *accountNum = [accountTemp valueForKey:@"acct"];
5 NSString *pwdNum = [SSKeychain passwordForService:serviceName account:accountNum];
6 [SSKeychain deletePasswordForService:serviceName account:accountNum];
//若要删除所有的账号和密码,则用
NSArray *accounts = [SSKeychain accountsForService:kSSToolkitMyPswdServiceName];
for (NSDictionary *dictionary in accounts) {NSString *account = [dictionary objectForKey:@"acct"];[SSKeychain deletePasswordForService:kSSToolkitMyPswdServiceName account:account];
}

更详细的介绍见这里
http://hi.baidu.com/bupt_zhuo/item/fac2422c1861b14f479962f2
http://blog.csdn.net/fangzhangsc2006/article/details/8716131

 

引申

有时候导入一些第三方文件需要关闭arc,否则报错。这里给出如何部分或整体关闭arc方法。
①整体关闭arc,即整个项目都关闭
Build settings -> Apple LLVM complier 6.0 - Language - objective-C ——> Automatic Reference Counting设置为NO,即可

②部分关闭,即某个类不需要arc,那么只需在该类中关闭arc即可,不影响整体项目。
Build Phrases ——> Compile Sourses,找到不想加arc的.M 文件,在后面加上 -fno-objc-arc

转载于:https://www.cnblogs.com/Apologize/p/4318501.html

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

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

相关文章

linux系统的4个部分,以下是Linux文件系统的4个相关的结构定义中的一部分: Struct i..._考试资料网...

问答题为了实现文件的共享,办法之一是把文件目录分成基本文件目录和符号文件目录。现设目录文件存放在磁盘上,盘块长度为1024B,每个文件说明占48B。其中,文件符号名占6B,内部标识符ID占2B,请回答下列问题&a…

收银扫描设备统计

前端时间开发一个会员管理系统,里面涉及一些支付的问题,就查找一些配套的硬件设备。记录点滴成长 2000元的配套设备一般就可以满足系统应用啦。

推断:Facebook的新Java静态分析工具

如何使用Facebook的Infer改善Java开发工作流程? 如果您与技术话题保持紧密联系(如果您正在阅读此博客,我想您应该这样做),那么您可能听说过Facebook 刚刚向公众发布的新工具:推断。 由于它来自Facebook&am…

html 转换xslt,XSLT xsl:template 元素

元素元素用于构建模板。match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match"/" 定义整个文档)。好了,让我们看一下上一节中的 XSL 文件的简化版本:xmlns:xsl&qu…

开发一个大数据网站做的铺垫

知名大数据分析网站推荐8个 用到的大数据5个关键技术 人工智能6大关键技术

[C/C++]C++标准

本文若如特别说明都引于ISO/IEC 14882:2011 7、声明(Declarations) 声明序列(declaration-seq): 声明(declaration) 声明序列(declaration-seq) 声明(declaration)声明(declaration): block-declaration function-definition template-declaration explicit-…

js html实体编码转换,字符串js编码转换成实体html编码的方法(防范XSS攻击)

js代码在html页面中转换成实体html编码的方法一&#xff1a;js代码转换成实体htmljs代码转换成实体html--红function test(){alert(测试红)}test();js代码转换成实体html--绿alert(测试绿)直接在html页面写法是这样写即可&#xff1a;方法一&#xff1a;<script>alert(&q…

程序员必备工具

声明&#xff1a;转自CSDN博主「不脱发的程序猿」的原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/m0_38106923/article/details/100130354 目录 1、搜索引擎 2、PPT 3、图片操作…

hdu 4292 Food 最大流

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4292 You, a part-time dining service worker in your college’s dining hall, are now confused with a new problem: serve as many people as possible.  The issue comes up as people in your college…

jaxb 生成java类_重用生成的JAXB类

jaxb 生成java类在本文中&#xff0c;我将演示如何利用XJC扩展来重用以前从XML模式生成的类。 当其他XML架构导入XML架构并且您不想每次都生成相同的类时&#xff0c;这很有用。 导入的架构&#xff08;Product.xsd&#xff09; 以下XML模式代表有关产品的基本信息。 产品是此…

怎样在Ubuntu系统安装可用的QQ

http://jingyan.baidu.com/article/9f63fb91d1f6bbc8400f0e1c.html转载于:https://www.cnblogs.com/Ph-one/p/4330749.html

印象笔记桌面版怎么导出html,服务通知:印象笔记PC端Markdown取消支持HTML标签解析功能...

亲爱的用户&#xff1a;印象笔记电脑端 Markdown 取消了对 HTML 标签解析功能的支持&#xff0c;使用 Windows 6.15.12 Beta 版及 Mac 8.3.2 版的部分用户将受到影响&#xff0c;以下是对本次影响的详细说明。“HTML 标签解析”功能自上线以来就得到部分 Markdown 资深用户的深…

普通 项目打包包含第三方jar包

在工程中包含第三方Jar包时&#xff0c;普通打包方式打出的Jar包无法包含第三方Jar包。 可以使用net.sf.fjep.fatjar_0.0.31.jar插件&#xff0c;将第三方Jar包包含在打出的jar包中&#xff0c; 只要将该插件放到Eclipse的dropins目录&#xff08;如&#xff1a;D:\Program F…

如何优化Hibernate EllementCollection语句

介绍 Hibernate支持三种数据映射类型 &#xff1a; 基本 &#xff08;例如String&#xff0c;int&#xff09;&#xff0c; Embeddable和Entity 。 通常&#xff0c;数据库行映射到Entity &#xff0c;每个数据库列都与一个基本属性关联。 当将多个字段映射组合到一个可重用的组…

《黑马程序员》 流程控制(C语言)

------- <a href"http://www.itheima.com" target"blank">android培训</a>、<a href"http://www.itheima.com" target"blank">java培训</a>、期待与您交流&#xff01; --------- 流程控制主要有 顺序结构…

android中屏幕宽高显示不全,Android 获取屏幕宽度跟高度

Android 获取屏幕宽度跟高度在android开发过程中&#xff0c;对于控件的高度&#xff0c;宽度&#xff0c;通过下面的函数调用&#xff0c;轻松实现编程中设置控件的相对宽度跟高度&#xff1a;// 获得屏幕的宽度public static int getScreenWidth(Context ctx) {// 从系统服务…

使用Eclipse将包含第三方jar库的java工程打包成jar包

1、MANIFEST.MF 在工程下新建一个MANIFEST.MF的文件,项目结构如下。 M.java package cn.hwd.main;import java.io.IOException;import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.s…

C#实现整数冒泡排序、选择排序

/// <summary> /// 交换两个整数的值 /// </summary> /// <param name"aa">数1</param> /// <param name"bb">数2</param> private static void Swap(ref int aa,ref int bb) { …

史上最牛逼的导航网站(很全很详细)

今天,给大家推荐47个聚合型的导航网站 每一个都收录上百个网站,1个能顶100个,丝毫没有夸张的成分。 (推荐收藏) 设计师导航网站 01 优设导航 https://hao.uisdc.com/ 设计师必备的导航网站,包含设计工具、素材资源、字体设计、配色方案、酷站模板等。 界面清晰无广告…

gmat阅读.html,GMAT阅读长难句50句+参考译文.pdf

GMAT 阅读长难句50 句参考译文GMAT 阅读的考查重点是句子结构和句与句、段与段之间的逻辑关系。GMAT 阅读长难句都比较长&#xff0c;读起来拗口。在遇到这类句子时&#xff0c;我们不必细细梳理&#xff0c;而要先抓住句子主干。有些成分根本就对我们做题没有任何影响&#xf…