Swift 标准库 (iOS/macOS):完整概述

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Swift 标准库 (iOS/macOS):完整概述



Swift 标准库是直接内置于语言中的一组基础类型、协议和函数。它为 iOS、macOS、watchOS 和 tvOS 开发提供了必要的基本功能。与属于 SDK 一部分的 Foundation 或 UIKit 框架不同,Swift 标准库无需额外导入即可直接使用。在本文中,我们将详细分析其关键组件、数据结构、协议和内存管理机制。



基本数据类型和集合



Swift 提供了强大且类型安全的集合,并针对性能进行了优化。



数组 (Array)

相同类型元素的有序集合。支持随机访问和动态调整大小。

var numbers: [Int] = [1, 2, 3]numbers.append(4)let first = numbers[0] // 1numbers.sort()


集合 (Set)

唯一元素的无序集合。非常适合成员资格检查和数学运算。

let setA: Set<Int> = [1, 2, 3, 4]let setB: Set<Int> = [3, 4, 5, 6]let intersection = setA.intersection(setB) // {3, 4}let union = setA.union(setB) // {1, 2, 3, 4, 5, 6}


字典 (Dictionary)

键值对的无序集合。键必须是可哈希的 (Hashable)。

var capitals: [String: String] = ["俄罗斯": "莫斯科", "美国": "华盛顿"]capitals["德国"] = "柏林"if let russiaCapital = capitals["俄罗斯"] {    print(russiaCapital) // 莫斯科}


协议:Swift 通用性的基础



Swift 标准库构建于协议之上,这些协议为不同类型定义了通用接口。



  • Equatable — 允许使用 == 比较实例。
  • Hashable — 需要将类型用作字典键或集合元素。
  • Comparable — 提供对象排序能力 (<, >, <=, >=)。
  • Codable — 结合 Encodable 和 Decodable,用于序列化为 JSON、Property List 和其他格式。
  • CaseIterable — 自动提供枚举所有值的集合。


Codable 使用示例

struct User: Codable {    let id: Int    let name: String    let isActive: Bool}

let json = """{ "id": 42, "name": "伊万", "isActive": true}""".data(using: .utf8)!

let decoder = JSONDecoder()if let user = try? decoder.decode(User.self, from: json) { print(user.name) // 伊万}


内存管理:ARC 和写时复制



Swift 使用自动引用计数 (ARC) 来管理引用类型(类)的内存。对于结构和枚举,采用值复制语义,但集合带有写时复制 (COW) 优化。



var array1 = [1, 2, 3]var array2 = array1 // 在修改之前——数据是共享的array2.append(4)    // 这里发生实际复制 (COW)print(array1.count) // 3 —— 原始数组未改变


泛型 (Generics)



泛型允许编写灵活且可重用的函数和类型,同时不损失性能。



func swapTwoValues<T>(_ a: inout T, _ b: inout T) {    let temporaryA = a    a = b    b = temporaryA}

var x = 10var y = 20swapTwoValues(&x, &y) // x = 20, y = 10


可选类型 (Optionals)



安全处理缺失值是 Swift 的关键特性之一。可选类型防止了空指针异常。



var optionalString: String? = "你好"// Optional bindingif let unwrapped = optional                    

推荐