具体化:针对特定的类型参量进行二次定义: 实例化:实例化:…
设计问题:谁来构造.构造什么.怎么添加新功能 关键词:本体.客体.构造.映射.功能. 别名:桥接变量.型变变量.容器变量.适配变量,构造变量: 目的:添加命名空间.添加新功能. 原则:不修改本体的实现. 原始版本: 在本体的扩展中,直接构造客体:客体的构造器输入参量为主体: 客体为具体类,直接完成本体想要完成的功能: 版本升级一:客体泛型化 目的:客体的功能实现脱离 // 客体 public final class YKKit<Base> { public let base: Base pub…
最后更新:2018-01-16 使用教程: 官方的链接 使用 Kingfisher 处理网络图片的读取与缓存 1. 开始使用 桥接 KingFisher, 利用 KingfisherCompatible协议来处理, 此处与 SnapKit的处理方式还是有点不同, SnapKit 是使用 ConstraintViewDSL 对象来设置, 对View 来设置方法, 当然这两种方式都可以: 设置Image 利用扩展extension来处理 /** A type that has Kingfisher…
三个关注点:1.形式:2.实现方式:3.使用方式: 一.基本形式: 形式:内部无泛型类型: 实现:只需指定类型和实现相应的功能即可: 使用:可以用在其他类型出现的任何地方: protocol Response { /// The task metrics containing the request / response statistics. var _metrics: AnyObject? { get set } mutating func add(_ metrics: AnyObject?…
一.术语:指定类型 typealias:用于给关联类型指定类型: 通过类型推断给关联类型指定类型太过烧脑: 二.类型指定 1.具体类型实现协议后,直接指定:作为普通的泛型类型使用,指定类型即可: 2.将协议实现为泛型构造器,关联类型通过泛型构造器的输入类型指定: 3.关联类型本身有协议约束:需要先构建指定类型再进行指定: 三.关联类型的引用与约束 引用为:协议名称+关联类型的形式: 约束:与泛型类型的约束形式相同. public extension Collection where Iterat…
最近在看一些Swift开源库的时候,发现了一些优秀的开源库都使用了命名空间,例如Kingfisher这个开源库中,就针对UIImage,UIImageView,UIButton做了命名空间的扩展.通过logoImageView.kf.setImage(url)这种方式能够很好地避免扩展的命名冲突,而且相对 logoImageView.kf_setImage(url)这种通过前缀避免命名冲突的方式,具有更好的可读性,而且更Swifty化. 实现原理 主要通过三点来实现: 泛型类 泛型协议 协议扩展…
1.什么是.NET?什么是CLI?什么是CLR?IL是什么?   (1).net用于代码编译和执行的集成托管环境,换句话,它管理应用程序运行的方方面面,包括首次运行的编译,为程序分配内存存储数据和指令,对于应用程序授予或拒绝相应的权限,并启动管理应用程序的执行,剩余内存的在分配.由于所有.net应用程序都是在.net framework上面执行,所以开发人员只需考虑与.net framework打交道,而不必关系和底层操作系统上面的实现包括CLR和BCL (2).CLI(common langu…
C#是一门使用OOP技术的编程语言(Object Oriented Programming 面向对象编程)面向对象最重要的特性就是接口.继承.多态 C#中所有的事物都可以看做是一个对象 对象由类型来创造 而类型就相当于一个蛋糕模型 将面粉填满这个模型 送进烤箱 最后烘焙出来的就是对象 烘焙的过程即对象诞生的过程 在面向对象编程的世界里 这个过程被称为实例化对象 一旦创建完成 则该对象就有了该类型的属性.字段.方法等一切可以被对象访问的事物 类型修饰符 类型有两种类型的修饰符 一种用于定义类型的访…
一.前言 江湖上都在说现在就要赶紧学 swift 了,即将是 swift 的天下了.在 api 变化不大的情况下,swift 作为一门新的语言,集众家之所长,普通编码确实比 oc 要好用的多了 老早就听说 MVVM 的概念及响应式函数式编程,微软确实厉害.自己最近没什么事,就前来入坑了 二.学习方式 参考别人写的一些博客,对于概念先有个理解,然后参考官方 example,就可以开始学习了 推荐文章: http://www.codertian.com/2016/11/27/RxSwift-ru-k…
前言 看了前面的文章,相信很多同学还不知道RxSwift该怎么使用,这篇文件将带领大家一起写一个 注册登录(ps:本例子采用MVVM)的例子进行实战.本篇文章是基于RxSwift3.0写的,采用的是Carthage第三方管理工具导入的RxSwift3.0,关于Carthage的安装和使用,请参考Carthage的安装和使用. 最终效果 下载Demo点我 前提准备 首先请大家新建一个swift工程,然后把RxSwift引入到项目中,然后能够编译成功就行. 然后我们来分析下各个界面的需求: 注册界面…