互用性(互操作性)使开发者可以定义融合了 Objective-C 语言特性的Swift类。编写 Swift 类时,不仅可以继承 Objective-C 语言编写的父类,采用 Objective-C 的协议,还可以利用 Objective-C 的一些其它功能。这意味着,开发者可以基于 Objective-C 中已有的熟悉、可靠的类、方法和框架来创建 Swift 类,并结合 Swift 提供的现代化和更有效的语言特点对其进行优化。
继承Objective-C的类
在 Swift 中,开发者可以定义一个子类,该子类继承自使用 Objective-C 编写的类。创建该子类的方法是,在 Swift 的类名后面加上一个冒号(:),冒号后面跟上 Objective-C 的类名。
复制代码// SWIFT
import UIKit
class MySwiftViewController: UIViewController {
// 定义类
}
开发者能够从 Objective-C 的父类中继承所有的功能。如果开发者要覆盖父类中的方法,不要忘记使用override关键字。
采用协议
在 Swift 中,开发者可以采用 Objective-C 中定义好的协议。和 Swift 协议一样,所有 Objective-C 协议都写在一个用逗号隔开的列表中,跟在所在类的父类名后面(如果它有父类的话)。
复制代码// SWIFT
class MySwiftViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
// 定义类
}
Objective-C 协议与 Swift 协议使用上是一致的。如果开发者想在 Swift 代码中引用 UITableViewDelegate协议,可以直接使用UITableViewDelegate(跟在 Objective-C 中引用id<UITableViewDelegate>是等价的)。
编写构造器和析构器
Swift 的编译器确保在初始化时,构造器不允许类里有任何未初始化的属性,这样做能够增加代码的安全性和可预测性。另外,与 Objective-C 语言不同,Swift 不提供单独的内存分配方法供开发者调用。当你使用原生的 Swift 初始化方法时(即使是和 Objective-C 类协作),Swift 会将 Objective-C 的初始化方法转换为 Swift 的初始化方法。关于如何实现开发者自定义构造器的更多信息,请查看构造器。








