Swift中可选绑定引发的值类型与引用类型的思考
一、前言
Swift相较于OC是一门类型更加安全的语言,其中引入的Optional类型便是为了增强取值可靠性的一种方式。然而在新旧语言的转换过程中总是会踩到坑中,由于自己对于这个概念的理解还没有到位,在最近一次的实践中就遇到了由于Optional Binding引发的问题。
二、问题场景
textFiled中的text属性是一个可选(optional)类型,在对输入状态进行处理的时候肯定会涉及到对输入内容的逻辑操作。在OC中这种操作还是很直接的,直接使用.语法(textField.text)获取属性进行判断。
但在swift中text是一个可选属性,直接对属性进行操作就比较冗余了。因此我们往往会写出如下的代码。
1 | if var text = textField.text { |
打印textField.text就会发现并不是text赋值的值。
R.swift优雅的引入项目中的资源文件
在项目中使用RSA算法

在正文开始之前先吐个槽,看自己上一篇发文已经是好几个月之前的了。之前的设想是每周输出一篇技术方面的文档,接着就被硬生生拖成了一个月,然后就不知道几个月去了……其间还是有有不少可以写的题材,都是因为这该死的拖延~~~好了进入正题。
1.前言
契机是公司换了一套新接口,要求进行全报文加密。以前公司项目基本上都使用的对称加密的模式3DES、AES,由于对称加密的密钥只有一对,有很大的密钥泄露风险。身处金融这个极为敏感的行业,对安全的要求也是极高。趁着这个机会,把项目中的加密模式统一替换成RSA非对称加密。
2.关于加密算法
本篇不会对RSA加密算法原理进行详细的解释。在互联网异常发达的今天,RSA算法详细的资料很容易就能获取到。安全领域也是一个能够深挖的领域,本篇文章偏向工程向,仅对一些基本基本概念进行简单的解释。
对称加密和非对称加密
对称加密 :加密和解密用的是同一套密钥,缺陷是密钥管理存在风险。常用的加密方式有:DES、3DES、AES等。
非对称加密 :加密和解密用的不同的密钥,公钥加密私钥解密。常用的加密方式有RSA。RSA常见用法:
1.公钥加密,私钥解密;
2.私钥签名;
3.公钥验签。
静态库联调中的若干问题
将代码发布到CocoaPods(trunk方式)
一、概述
Cocoapods是当前iOS开发最流行的版本依赖工具,开发者使用Cocoapods进行项目的依赖管理会为开发节省不少时间。相信大家都尝试过通过Cocoapods管理自己的项目,但如何将自己开发的代码发布到Cocoapods上让别人也可以搜索使用呢?下面就将介绍trunk方式接入的方法,以及在过程中可能遇到的坑。
二、注册
接入的第一步就是要注册trunk,在注册trunk之前需要确认当前的CocoaPods版本必须在0.33以上。若低于该版本请打开Terminal使用ruby的gem命令更新pod:
1 | sudo gem install cocoapods |
若OSX版本在10.11以上请使用以下安装命令
1 | sudo gem install -n /usr/local/bin cocoapods |
版本更新结束之后我们开始注册trunk:
1 | pod trunk register <邮箱> <'用户名'> --description='macbook pro' |
其中邮箱是最重要的,因为注册之后pod会往你的邮箱发一封激活邮件,所以邮箱名就当相当于你的trunkID了。至于用户名个人感觉写不写都不太有所谓,–description参数是cocoapods推荐添加的,若以后你在别的设备上登录了trunk方便判断终端信息,也是一个可有可无的参数。点击邮箱中的注册链接,使用下列命令就可以向trunk服务器查询到自己的注册信息。

