09:swift-类
正文
import UIKit class NineClassVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() } /* 1: 类与结构体的对比 在 Swift 中类和结构体有很多共同之处,它们都能: 定义属性用来存储值; 定义方法用于提供功能; 定义下标脚本用来允许使用下标语法访问值; 定义初始化器用于初始化状态; 可以被扩展来默认所没有的功能; 遵循协议来针对特定类型提供标准功能。 类有而结构体没有的额外功能: 继承允许一个类继承另一个类的特征; 类型转换允许你在运行检查和解释一个类实例的类型; 反初始化器允许一个类实例释放任何其所被分配的资源; 引用计数允许不止一个对类实例的引用。 更多信息,请阅览继承,类型转换,反初始化和 自动引用计数。 注意:结构体在你的代码中通过复制来传递,并且并不会使用引用计数。 */ // 2:初始化 初始化器语法最简单的是在类或结构体名字后面接一个空的圆括号 /* ** 3:结构体和枚举是值类型 值类型是一种当它被指定到常量或者变量,或者被传递给函数时会被拷贝的类型。 其实,在之前的章节中我们已经大量使用了值类型。实际上,Swift 中所有的基本类型 ——整数,浮点数,布尔量,字符串,数组和字典——都是值类型,并且都以结构体的形式在后台实现。 Swift 中所有的结构体和枚举都是值类型,这意味着你所创建的任何结构体和枚举实例—— 和实例作为属性所包含的任意值类型——在代码传递中总是被拷贝的。 */ // 4:类是引用类型 // 5: 指针 /* 6: Swift 的 String , Array 和 Dictionary类型是作为结构体来实现的, 这意味着字符串,数组和字典在它们被赋值到一个新的常量或者变量,亦或者它们本身被传递到一个函数或方法中的时候,其实是传递了拷贝。 这种行为不同于基础库中的 NSString, NSArray和 NSDictionary,它们是作为类来实现的,而不是结构体。 NSString , NSArray 和 NSDictionary实例总是作为一个已存在实例的引用而不是拷贝来赋值和传递。 */ }