Concurrency Programing in Swift
本文主要讨论和介绍Swift的并发编程,现在iOS中有两套比较先进的并发编程方案可以供我们使用,一个是GCD
,另一个是操作队列(Operation Queues)
。GCD是一套基于C的底层API,而操作队列是在GCD基础上的面相对象抽象,GCD提供了更加底层的控制,而操作队列则在GCD之上实现了一些方便的功能。
本文主要讨论和介绍Swift的并发编程,现在iOS中有两套比较先进的并发编程方案可以供我们使用,一个是GCD
,另一个是操作队列(Operation Queues)
。GCD是一套基于C的底层API,而操作队列是在GCD基础上的面相对象抽象,GCD提供了更加底层的控制,而操作队列则在GCD之上实现了一些方便的功能。
最近公司在前端架构优化方案时提到了MVP和MVVM两种模式,其实这两种架构从接触移动端开发以来,一直有听到过,但是一直没有深入的去学习理解。借这次App代码重构的机会,我仔细的了解了MVP和MVVM两种架构。其中在接触MVVM时,提到了一种绑定(响应式)的概念,即Model和ViewModel之间双向绑定,View的变动,自动
反映在 ViewModel,反之亦然。于是我就想利用业余时间好好学习一下RxSwift,理解这种响应式的方式是如何实现的。
WCDB(WeChat DataBase)是微信官方的移动端数据库组件,它基于SQLCipher,是一个关系型数据库,支持iOS, macOS和Android。WCDB提供了三个基础类进行数据库操作:WCTDatabase、WCTTable、WCTTransaction。它们的接口都是线程安全的。WCDB几乎涵盖了常用的数据库操作,同时还开放了核心层接口,方便用户扩展一些未封装的复杂SQL操作。安全方面它继承了SQLCipher的加密方式,内建了Repair Kit用于修复损坏的数据库,通过内建宏的方式实现了ORM(Object Relational Mapping)
,方便地实现了对象属性到数据表字段的映射,通过一种名为WINQ
的规则对SQL进行了抽象,避免了冗长的SQL胶水代码,也防止了SQL注入。
我们在使用淘宝App购物的时候,经常用到的一个操作就是加入购物车,好奇的朋友一定会发现,当我们在点击加入购物车按钮的时候出现了一个酷炫的动画。原本的视图出现了一定的折叠之后,仿佛嵌入了屏幕内部,随后弹出商品详细参数的页面。实际上,这是一种自定义的模态视图转场动画。下面我们一步一步分析实现类似的模态视图转场动画。
iOS UIKit框架默认只能通过UILable的textAlignment属性调整其水平方向上的布局,设置文字水平居左、居中和居右。不能对文字垂直方向上的布局做出直接调整,但是我们通过重写UILabel的textRectForBounds和drawTextInRect方法,能够很便捷的调整UILable的内容布局,实现居上、垂直居中和居下的效果。具体实现如下: