代码改变世界

随笔分类 -  Swift

自定义 Alamofire 的 response serializer

2019-04-10 16:03 by l4y, 837 阅读, 收藏, 编辑
摘要: Alamofire 的 DataRequest 类针对二进制数据、字符串、json、属性列表提供了一系列方便解析的方法(内部实际上使用的是 Response Serializer),现在我们要针对服务端返回的数据格式定义我们自己的 Response Serializer。 假设服务器返回的数据格式是 阅读全文

LeetCode 430. Faltten a Multilevel Doubly Linked List

2018-07-26 12:06 by l4y, 641 阅读, 收藏, 编辑
摘要: 题目链接: "LeetCode 430. Faltten a Multilevel Doubly Linked List" 阅读全文

Swift 笔记汇总

2017-08-24 13:16 by l4y, 204 阅读, 收藏, 编辑
摘要: Swift 3 笔记 "Swift: The Basics" :介绍 Swift 一些零碎的点。 "Swift: Basic Operators" :介绍 Swift 的操作符。 "Functions" : 介绍 Swift 的函数,包括默认参数值,可变长参数,In Out Parameters 等 阅读全文

Swift: Initialization-2

2016-11-11 23:24 by l4y, 361 阅读, 收藏, 编辑
摘要: Failable Initializers 有的时候,可能是参数问题、需要的外部资源没有到位等原因,初始化可能失败。为了应对这种情况,我们可以定义一个或多个可失败的构造方法。 A failable initiazlier creates an optional value of the type i 阅读全文

Swift: Initialization-1

2016-11-11 18:12 by l4y, 590 阅读, 收藏, 编辑
摘要: 初始化的过程包括为每一个存储属性设置一个初始值和其他步骤。通过定义构造函数来实现初始化的过程,跟oc的初始化函数不同,Swift的构造函数不返回一个值。它们的主要角色是确保一个类型的实例在初次使用前被正确的初始化。 类的实例也可以有析构函数,析构函数在类的实例在释放前完成一些清理工作。 Settin 阅读全文

Swift: 继承

2016-11-11 17:17 by l4y, 315 阅读, 收藏, 编辑
摘要: 为了在属性值改变的时候获得通知,类可以为继承的属性添加属性观察者。属性观察者可以添加到任何属性上,不管这个属性原来是存储属性还是计算属性。 Swift中的类没有一个统一的基类。 为了讲明白继承,我们先来定义一个基类: ~~~swift class Vehicle { var currentSpeed 阅读全文

Swift: 下标(Subscripts)

2016-11-11 16:24 by l4y, 373 阅读, 收藏, 编辑
摘要: 类、结构体、枚举都可以定义下标(subscript),下标是访问集合、列表、序列的元素的快捷方式。 在Swift中可以为类型定义下标,而且不限于一维。 语法 下标定义的方法:跟实例方法的语法类似, 关键字,一个或多个输入参数,一个返回值。 下标可以是可读可写的,也可以是只可读的,由getter和se 阅读全文

Swift: 类与结构体

2016-11-10 22:09 by l4y, 345 阅读, 收藏, 编辑
摘要: 对比类与结构体 类与结构体有许多的相同点,它们都可以: 定义属性来存储值; 定义方法来提供功能; 定义下标操作; 定义初始化函数; 扩展它的默认的实现; 遵从协议; 类有一些额外的能力,但是结构体没有: 继承; 类型转换可以让你在运行时check、interpret类的实例的类型; 析构函数(Dei 阅读全文

Swift: 枚举

2016-11-10 21:30 by l4y, 397 阅读, 收藏, 编辑
摘要: Enumerations in Swift are flexible, and do not have to provide a value for each case of the enumeration. If a value(known as "raw" value) if provied f 阅读全文

Swift: 方法

2016-11-10 15:50 by l4y, 224 阅读, 收藏, 编辑
摘要: 这里的“方法”指的是跟特定类型有关系的函数。 方法包括实例方法(Instance Method)和类型方法(Type Method)。实例方法可以访问所有该类型所有其他的实例方法和属性。 实例方法 在实例方法中修改值类型的数据(Modifying Value Types from Within In 阅读全文

Swift: 属性

2016-11-09 23:30 by l4y, 376 阅读, 收藏, 编辑
摘要: 属性常与类、结构体、枚举联系在一起。stored properties存储常量值、变量值,而computed properties计算一个值。类、结构体、枚举都可以有computed property,但是只有类与结构体可以有stored property。 Stored Properties ~~ 阅读全文

Swift: 函数

2016-11-09 20:39 by l4y, 288 阅读, 收藏, 编辑
摘要: 默认参数值(Default Parameter Values) ~~~swift //默认参数值 func someFunction(parameterWithoutDefault: Int, parameterWithDefault: Int = 12) { } someFunction(para 阅读全文

Swift: 基本操作符

2016-11-09 12:09 by l4y, 293 阅读, 收藏, 编辑
摘要: 这里只讲一下Swift中比较特殊的操作符,在其他语言中也存在操作符就不再讲了 Nil Coalescing Operator: ?? The nil coalescing operator ( ) unwraps an optional a if it contains a value, or re 阅读全文

Swift: The Basics

2016-11-09 11:42 by l4y, 226 阅读, 收藏, 编辑
摘要: 分解(decompose)元组:可以使用下划线来忽略一些值 也可以使用下标来取出单个值: 可以在定义元组的时候,给每个元素命名: 这个时候,可以这样获取每个元素的值: Swift的nil跟oc中的nil不同。In Objective-C, nil is a pointer to a nonexist 阅读全文

Swift的闭包(二):捕获值

2016-11-08 21:23 by l4y, 1831 阅读, 收藏, 编辑
摘要: 闭包可以从定义它的上下文中捕获常量和变量。 在Swift中,捕获值最简单的例子是嵌套函数,举个例子: 在这个例子中incrementer()捕获两个值,分别是amount、runningTotal。可以运行一下,观察结果: 注意:如果你把闭包赋值给一个类实例的一个属性,并且闭包通过指向(refer 阅读全文

Swift的闭包(一):闭包简介、闭包表达式的优化

2016-11-08 19:19 by l4y, 529 阅读, 收藏, 编辑
摘要: 定义:Closures are self-contained blocks of functionality that can be passed around and used in your code. 闭包以下面三种形式中的一种存在: <!--StartFragment--> Swift的闭包 阅读全文