GeorgeWang Blog

行千里路,读万卷书

Swift学习笔记(五)

1.泛型(Generics) swift支持泛型,泛型让代码更灵活,重用性更高;在swift中像数组、字典这些容器,都适用泛型,如声明一个Int类型的数组 1.1 泛型函数 把泛型应用到函数参数中,让原本类型固定的参数可以随时变换类型,如一个把参数值互换的函数,有了泛型更加灵活 由于swift是类型安全的,所以错误的类型赋值会导致编译不通过 泛型函数,在函数...

Swift学习笔记(四)

1.协议(Protocol) 协议定义了一张关于属性、方法和其他要求的蓝图,类、结构体和枚举可以遵从协议并实现要求的功能;协议要求的内容可以在协议的扩展中实现 1.1 协议语法 协议的定义很简单: protocol SomeProtocol {} 遵从协议如: struct SomeStructure: FirstPr...

Swift学习笔记(三)

1.可选链 可选链是基于可能为nil的实例调用属性、方法、下标的过程,当调用链上任何一环为nil,整个调用将“优雅地”失败 1.1 可选链作为备选的强拆包 可选链在调用属性、方法、下标的时候,在后方加上?,就像!强拆包一样,不同的是,强拆包不成功时,会报runtime error,而可选链则会“优雅地”失败 可选链的返回值是可选类型,就算调用的属性、方法、下标是...

Swift学习笔记(二)

内容主要参考官方文档 1.类与结构体 swift中的类和OC不同,不用将声明和实现分开到.h和.m文件,而是统一在一个代码结构就可以。此外,swift中的类和结构体比其他语言中类和结构的功能要更加相似。 1.1 类和结构体的区别 相同点: 用属性存储值 方法提供功能入口 都提供下标语法 用初始化方法初始化他们...

Swift学习笔记(一)

内容主要参考官方文档 1. swift关键知识点 !与 ?: !与 ?对应最新版oc的nonnull和nullable关键字,分别用于指明变量的非空和可选,保障变量的安全性;非空即,变量不能为空,否则编译不过;可选即,变量可以为空也可以不为空; 拆包(unwrapper): 拆包对应?变量的读取,可选变量读取时,如果加上!,就表示变量非空,如果变量为空,将报错,如val...

swift学习及Alamofire源码阅读

前言 学习一门语言,我比较排斥从头到尾地阅读语言教材,那样子既容易遗忘,效率又低。更好的方式,应该是阅读知名的第三方库源码,根据出现的语言障碍,去查阅书籍,并熟悉相应知识点。这样子下来,对于语言的印象既深刻,又能学习到知名第三方库的设计思想和编写技巧。如果第三方库基本看懂了,那么对该语言语法就有一定的掌握了。 本篇笔记主要记录Alamofire的源码阅读的内容,关于swift的笔记在另外的文...

HealthKit的介绍及API说明

总览 内容主要参照官方文档 Health Kit是iOS 8.0引进的新框架,其可以记录手机传感器、穿戴设备收集到的健康数据,苹果系统会自动合并这些来自不同设备的数据,智能化合并;不过iPad不支持Health Kit Health Kit的健康数据存储在一个加密的叫做HealthKit store的数据库中,通过类HKHealthSt...

WYChart介绍系列(五)交互:线型图触碰点以及缩放的实现

前面三张分别介绍了WYChart中线型图的总体规划、绘制、动画的实现,相信看完的读者对于如何实现一个带效果的线型图有一个整体的概念了,那么,再加上接下来要介绍的这一点,那么线型图的实现就完整了,那就是交互的实现。 线型图中主要的交互有两种,第一是曲线上点的触碰获取,第二是缩放。(其实还有一点,就是可滑动,由于相对简单,不展开) 本文将从以下两点介绍: 可滑动触碰点实现 缩放实...

WYChart介绍系列(四)线型图动画的实现

在前面的文章中有提到WYChart中线型图使用的是CoreAnimation框架,动画的制作也是使用里面一系列的效果。 本文将分为下面几个部分做讲解: CoreAnimation的动画类CABasicAnimation及其子类 WYChart中线型图采用的动画类型 CADisplayLink+UIViewAnimation+CALayer的动画模式 那么,开始吧 👇👇 ...

WYChart介绍系列(三)线型图绘制

绘制是整个线型图实现的基础,如何绘制一个线型图? 在WYChart中,我采用的是CAShapeLayer+UIBezierPath的组合,在这之前考虑过采用CoreGraphic做绘制,但是由于CALayer有CABasicAnimation一系列的动画支持,而且CoreAnimation框架都是Objective-C封装,相比CoreGraphic的C语言风格,更方便使用,所以最终还是采...