上一页 1 2 3 4 5 6 ··· 19 下一页
摘要:前言 方法是 Swift 中的一个重要概念,方法允许你把需要复用的代码封装进方法中,这样当你调用方法时,实际上你的想法是执行方法中的那些代码,方法的出现极大的提高了方法的复用性。 Swift 工程的环境是非常复杂的,如何凭借方法的名字正确的找到方法中的代码实际上并不是听起来那样简单,在寻找代码的道路 阅读全文
posted @ 2018-04-24 17:29 QianChia 阅读 (479) 评论 (0) 编辑
摘要:前言 由于柯里化在业务层的应用较少,所以从 Swift 3.0 开始移除了柯里化的用法,但是 Swift 的很多底层特性是使用柯里化来表达的。 1、柯里化 1.1 柯里化简介 柯里化(Currying),又称部分求值(Partial Evaluation),是一种函数式编程思想,就是把接受多个参数的 阅读全文
posted @ 2018-04-18 17:09 QianChia 阅读 (96) 评论 (0) 编辑
摘要:前言 Swift 提供了两种解决循环引用的方法,弱引用和无主引用。 弱引用和无主引用可以使循环中的一个实例引用另一个实例时不使用强引用。 1、弱引用 对生命周期中会变为 的实例采用弱引用,也就是说对可选类型采用弱引用。 声明一个弱引用的关键字为 。 1.1 弱引用示例 比如存在一个学生类,一个班级类 阅读全文
posted @ 2018-04-17 21:54 QianChia 阅读 (73) 评论 (0) 编辑
摘要:1、循环引用 如果两个类互相持有对方的强引用,就会出现循环引用的情况。 Swift 提供了两种解决循环引用的方法, "弱引用和无主引用" 。 1.1 循环引用示例 比如存在一个学生类,一个班级类,学生类有一个属性叫学生所属的班级,而班级有一个属性是班长,它引用了一个学生类,它们都是可选型。 接着我们 阅读全文
posted @ 2018-04-17 20:56 QianChia 阅读 (284) 评论 (0) 编辑
摘要:1、ARC 引用类型在堆上的内存分配过程中有 8 字节的地址长度用来保存对象的引用计数,堆上的内存并不像栈上那样立即进行回收,系统会定时对堆上的内存进行检查,当某个实例不再被使用时,引用计数会变为 0,此时系统会自动释放实例所占用的内存空间,一旦释放就不能再访问这个实例的属性和方法。由于该过程是自动 阅读全文
posted @ 2018-04-17 19:08 QianChia 阅读 (59) 评论 (0) 编辑
摘要:1、内存分配 1.1 值类型的内存分配 在 Swift 中定长的值类型都是保存在栈上的,操作时不会涉及堆上的内存。变长的值类型(字符串、集合类型是可变长度的值类型)会分配堆内存。 这相当于一个 “福利”,意味着你可以使用值类型更快速的完成一个方法的执行。 值类型的实例只会保存其内部的存储属性,并且通 阅读全文
posted @ 2018-04-17 17:41 QianChia 阅读 (145) 评论 (0) 编辑
摘要:前言 Swift 中的数据类型分为引用类型(类)和值类型(枚举、结构体)。 引用类型存储在 “堆” 上,值类型存储在 “栈” 上。 Swift 管理引用类型采用自动引用计数(ARC)的管理方法。 值类型是由处理器来管理的,不需要程序员来管理。 1、栈 栈是一块空间较小,但是运行速度很快的内存区域。 阅读全文
posted @ 2018-04-17 09:28 QianChia 阅读 (365) 评论 (0) 编辑
摘要:1、类输出 Swift 语言中类输出方法重写 2、命令行输入 在 Swift 语言中添加命令行输入函数 创建 C 语言的 .c 和 .h 及 桥接 文件,并添加自定义输入函数。 阅读全文
posted @ 2018-04-10 21:02 QianChia 阅读 (684) 评论 (0) 编辑
摘要:1、在 Objective C 项目中使用 Swift 代码 1)在 OC 项目中创建 文件,文件中的格式为其本有的格式。 2)Xcode 提示是否创建 Objective C bridging 头文件,点击 Yes 创建,Xcode 会自动创建一个桥接头文件,文件名的格式是 。 一般情况下,Xco 阅读全文
posted @ 2018-04-09 20:36 QianChia 阅读 (783) 评论 (0) 编辑
摘要:前言 在 Swift 语言中,我们可以使用 Objective C、C 语言编写代码,我们可以导入任意用 Objective C 写的 Cocoa 平台框架、Objective C 框架或 C 类库。 1、在 Swift 项目中使用 Objective C、C 代码 1)在 Swift 项目中创建 阅读全文
posted @ 2018-04-09 20:33 QianChia 阅读 (345) 评论 (0) 编辑
摘要:前言 iOS 中的 API 基本都是在许多年前由 OC 写成的,现在通过桥接的方法在 Swift 中可以用,基本看不出区别,非常自然。但是一些特殊的类型,在两种语言进行桥接的时候需要特别注意。 1、NSString 类型 是 Swift 中 类型在 OC 中的形式。 1)Swift 1.2 弱化了 阅读全文
posted @ 2018-04-09 19:41 QianChia 阅读 (79) 评论 (0) 编辑
摘要:前言 作为一种可与 Objective C 相互调用的语言,Swift 也具有一些与 C 语言的类型和特性,如果你的代码有需要,Swift 也提供了和常见的 C 代码结构混合编程的编程方式。 1、基本数据类型 Swift 提供了一些和 C 语言的基本类型如 等价的 Swift 基本数据类型。然而,这 阅读全文
posted @ 2018-04-09 19:40 QianChia 阅读 (68) 评论 (0) 编辑
摘要:前言 和 的格式类似,也是动态的, 会造成程序的提前终止并抛出错误信息。 1、Precondition 在一般的代码中并不多见,因为它是动态的,只会在程序运行时进行检查,适用于哪些无法在编译期确定的风险情况。 如果出现了诸如数据错误的情况, 会提前终止程序,避免因数据错误造成更多的损失。 如果条件判 阅读全文
posted @ 2018-03-30 01:28 QianChia 阅读 (715) 评论 (0) 编辑
摘要:前言 对每次运行都会出现的错误通常不会过于苦恼,可以使用断点调试或者 之类的方式判断并修复它。但是一些偶发(甚至是无数次运行才会出现一次)的错误单靠断点之类的方式是很难排除掉的,为此,引入一个不是很常用的调试工具函数 。 在实际编码中,为了保证程序正常运行,只有在某些必要条件被满足的情况下才执行特定 阅读全文
posted @ 2018-03-30 00:36 QianChia 阅读 (285) 评论 (0) 编辑
摘要:1、Defer 在一些语言中,有 这样的控制语句,比如 Java。这种语句可以让我们在 代码块中执行必须要执行的代码,不管之前怎样的兴风作浪。在 Swift 2.0 中,Apple 提供了 关键字,让我们可以实现同样的效果。 上述示例可以看到,在打印出 之后并没有打印出 ,而是 ,这就是 的作用,它 阅读全文
posted @ 2018-03-29 23:43 QianChia 阅读 (233) 评论 (0) 编辑
摘要:前言 语句和 语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么。 语句只会有一个代码块,不像 语句可以 多个代码块。 必须强制有 语句。 中的 只能执行转换语句,像 , , 或者 ,当然你也可以在这里返回一个函数或者方法。 语句的作用顾名思义就是守护。 语句判断其后的表达式布尔值 阅读全文
posted @ 2018-03-29 17:22 QianChia 阅读 (60) 评论 (0) 编辑
摘要:前言 在 Swift 1.0 时代是没有异常处理和抛出机制的。 如果要处理异常,要么使用 语句或 语句判断处理。 要么使用闭包形式的回调函数处理。 再要么就使用 处理。 以上这些方法都不能像 Java 中的 异常控制语句那样行如流水、从容不迫的处理异常,而且也会降低代码的可读性。 在 Swift 2 阅读全文
posted @ 2018-03-29 16:54 QianChia 阅读 (113) 评论 (0) 编辑
摘要:前言 在 Swift 中模式匹配是个重要的概念。 最常用的模式匹配是 语法。 模式匹配非常灵活,在使用 进行一轮模式匹配时,不需要所有的 都是同一种风格。 很明显 “匹配” 与 “相等” 是不同的, 中的类型不同时,匹配的标准也不同。 当 中只有一个单独的值时,我们可以认为相等就是匹配。 当 中是一 阅读全文
posted @ 2018-03-29 13:54 QianChia 阅读 (127) 评论 (0) 编辑
摘要:1、数据源中的同构与异构 对于 Swift 的集合数据来说,有同构和异构之分。 如果你需要讨论一群鸟类或者一批飞机,那么这样的数据是同构的,比如包含鸟类的数组 和包含飞机的数组 。 有时候你想探讨的是这些空中家伙的共性 “飞翔”,因此你的数据源可能同时包含 和 ,这样的数据源叫做异构数据。 1.1 阅读全文
posted @ 2018-03-28 15:25 QianChia 阅读 (106) 评论 (0) 编辑
摘要:1、类型嵌套 Swift 支持类型嵌套,把需要嵌套的类型的定义写在被嵌套的类型的 中。 Swift 中的枚举类型可以辅助实现特定的类或者结构体的功能。 阅读全文
posted @ 2018-03-28 14:08 QianChia 阅读 (348) 评论 (0) 编辑
上一页 1 2 3 4 5 6 ··· 19 下一页