Swift 语法速通:iOS 开发必会的 8 大核心概念(图解+类比)

Struct vs Class:地图复印 vs 谷歌文档

维度 struct(值类型) class(引用类型)
传递行为 复印一份 同一把钥匙
内存位置 栈(快) 堆+ARC
是否继承
举例 PointString UIViewController
swift 复制代码
let a = Point(x: 1, y: 2)   // struct
var b = a                   // 复印
b.x = 99                    // 改复印本
print(a.x)                  // 原图仍是 1

生活类比:

  • struct = 纸质地图复印 → 朋友圈圈点点不影响你那份。
  • class = 谷歌文档 → 任何人改动实时同步。

闭包 Closures:外卖"到楼请打电话"

swift 复制代码
let greet: (String) -> String = { "Hello, \($0)!" }

类比:下单外卖时写下的配送备注(闭包),骑手(系统)在到达时才执行;备注里可以"捕获"你房间号(上下文变量)。

Optional & ??:礼物盒与备用名字

swift 复制代码
var nickname: String? = nil
let screenName = nickname ?? "Guest"

三步记忆:

  1. 礼物盒(Optional)→ 可能有表,可能是空。
  2. 必须先打开(unwrap)才能用。
  3. 没礼物?用备用名字"Guest"------这就是 ??(Nil-Coalescing)。

Enum 带关联值:电影票附赠"隐藏彩蛋"

swift 复制代码
enum Ticket {
    case movie(name: String)
    case concert(artist: String, seat: String)
}
let t = Ticket.movie(name: "奥本海默")

类比:票根(enum 值)本身告诉你活动类型,同时附带不同信息:电影→片名;演唱会→歌手+座位。一张票搞定所有场景,编译器还强制你穷尽处理所有 case,告别魔法字符串。

Protocol + 扩展:驾照+全国通用交规

swift 复制代码
protocol Drivable {
    var speed: Int { get set }
    func drive()
}
extension Drivable {
    func stop() { print("Stopped.") }   // 默认实现
}

类比:

  • 协议 = 驾照考试清单(必须会刹车、打灯)。
  • 协议扩展 = 全国统一驾驶手册,不用再给每位司机重印一本。

Concurrency:服务员同时盯 N 桌

swift 复制代码
Task {
    let data = await fetchData()   // 后厨做饭
    updateUI(data)                 // 主线程上菜
}

类比:优秀服务员(系统)不会死等厨房,而是先去给别桌点单;菜好了异步回调再上菜,顾客(UI)始终流畅。

Error Handling:ATM 的友好提示

swift 复制代码
enum ATMError: Error { case noCash; case invalidCard }

func withdraw(amount: Int) throws -> Cash {
    guard amount <= balance else { throw ATMError.noCash }
    return Cash(amount)
}

类比:卡被吞、余额不足,ATM 不会爆炸,而是亮出清晰提示;同理,Swift 用 do-try-catch 让程序优雅降级而不是闪退。

Access Control:公寓门禁等级

关键字 可见范围 类比
open 全宇宙可继承 小区大门,还能改规则
public 全宇宙可见 小区花园,只能看不能改
internal(默认) 同模块 住户层电梯
fileprivate 同文件 自家客厅
private 同作用域 卧室

一页速查表(保存到手机)

概念 关键字/示例 生活锚点
值类型 struct 纸质地图复印
引用类型 class 谷歌文档
闭包 { } 外卖备注
空值处理 ?? 备用名字
枚举 enum Case(let info) 电影票附赠信息
协议 protocol + extension 驾照+通用手册
并发 await / Task 服务员多桌
错误处理 do-try-catch ATM 提示
访问控制 private...open 公寓门禁
相关推荐
njsgcs4 小时前
Swift playground 网页刷新切换随机页面的网页查看器WebKit
swift
桃子叔叔2 天前
基于SWIFT框架的预训练微调和推理实战指南之完整实战项目
大模型·swift
菜的不敢吱声2 天前
swift学习第5天
学习·ssh·swift
符哥20082 天前
Swift开发app常见第三方库
学习·swift
初级代码游戏2 天前
iOS开发 SwiftUI 5 : 文本输入 密码输入 多行输入
ios·swiftui·swift
菜的不敢吱声3 天前
swift学习第4天
服务器·学习·swift
菜的不敢吱声4 天前
swift学习第2,3天
python·学习·swift
大熊猫侯佩4 天前
拒绝“假死”:为何上滑关闭是测试大忌?揭秘 iOS 真实 OOM 触发指南
app·swift·apple
大熊猫侯佩4 天前
Swift 6.2 列传(第十六篇):阿朱的“易容术”与阿紫的“毒药测试”
swift·编程语言·apple
麦兜*4 天前
【Swift】苹果App开发全流程解析:从Xcode配置到App Store上架避坑指南
xcode·swift