Doliant's Meditation World

我心中曾经执剑的少年,此刻也混迹在市井之间

一、前言

Swift相较于OC是一门类型更加安全的语言,其中引入的Optional类型便是为了增强取值可靠性的一种方式。然而在新旧语言的转换过程中总是会踩到坑中,由于自己对于这个概念的理解还没有到位,在最近一次的实践中就遇到了由于Optional Binding引发的问题。

二、问题场景

textFiled中的text属性是一个可选(optional)类型,在对输入状态进行处理的时候肯定会涉及到对输入内容的逻辑操作。在OC中这种操作还是很直接的,直接使用.语法(textField.text)获取属性进行判断。
但在swifttext是一个可选属性,直接对属性进行操作就比较冗余了。因此我们往往会写出如下的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if var text = textField.text {
/// 逻辑操作
}
```

这是swift中推荐的可选绑定的写法,在其中的逻辑操作中`text`就是`textField.text`解包出的值,因此可以通过判断`text`的状态,获知`textField.text`的状态

那么问题来了,当我们判断完成需要对`textField.text`进行赋值的时候,一不小心就有可能直接写出这样的代码


```swift
if var text = textField.text
/// 逻辑操作
text = "XXXXXXX"
}
print(textField.text!)

打印textField.text就会发现并不是text赋值的值。

阅读全文 »

R.swift是一个高效引入iOS资源的框架,避免了使用字符串引入资源文件导致程序崩溃的尴尬。
目前R.swift支持到Swift3.0版本

优势

使用代码的方式来引入资源:

  • 类型完整: 减少推断和转换方法返回值的类型
  • 编译时检查: 不会再因为不正确的字符串导致App产生运行时崩溃
  • 自动补全: 不再需要输入图片名称

示例:

1
2
3
4
5
之前: 
let image = UIImage(named: "imageName")

R.swift:
let image = R.image.imageName()
阅读全文 »

封面图

在正文开始之前先吐个槽,看自己上一篇发文已经是好几个月之前的了。之前的设想是每周输出一篇技术方面的文档,接着就被硬生生拖成了一个月,然后就不知道几个月去了……其间还是有有不少可以写的题材,都是因为这该死的拖延~~~好了进入正题。

1.前言

契机是公司换了一套新接口,要求进行全报文加密。以前公司项目基本上都使用的对称加密的模式3DESAES,由于对称加密的密钥只有一对,有很大的密钥泄露风险。身处金融这个极为敏感的行业,对安全的要求也是极高。趁着这个机会,把项目中的加密模式统一替换成RSA非对称加密。

2.关于加密算法

本篇不会对RSA加密算法原理进行详细的解释。在互联网异常发达的今天,RSA算法详细的资料很容易就能获取到。安全领域也是一个能够深挖的领域,本篇文章偏向工程向,仅对一些基本基本概念进行简单的解释。

  • 对称加密和非对称加密
    对称加密 :加密和解密用的是同一套密钥,缺陷是密钥管理存在风险。常用的加密方式有:DES3DESAES等。
    非对称加密 :加密和解密用的不同的密钥,公钥加密私钥解密。常用的加密方式有RSA

  • RSA常见用法
    1.公钥加密,私钥解密;
    2.私钥签名;
    3.公钥验签。

    阅读全文 »

毫无意义的封面图

一.概述

日常开发中,静态库的开发总是要花费开发者很大的精力。工作中我们一般都是在项目中进行代码编写,在需要的时候把代码提出来另行打包,若有需求修改或者调试时,总需要把代码或者库拿回原程序中进行测试修改。
由于工作需要我要经常修改静态库代码中的内容,恰好最近在静态库联调的时候出现了一些问题,记录下来以后避免踩到这些坑。

阅读全文 »

一、概述

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服务器查询到自己的注册信息。

阅读全文 »
0%