Swift 开发教程:从零开始学 iOS 开发的入门路径
想从零开始学 Swift,最有效的路径是:先确认你有 Mac 和 Xcode,然后用 Playground 把基础语法练熟,再动手做一个能跑起来的小界面。Swift 是 Apple 在 2014 年推出的编程语言,iOS 开发是它最主要的应用场景,但两者不是一回事——Swift 是语言,iOS 开发是用这门语言配合 Apple 的框架(UIKit 或 SwiftUI)做 App。本教程按这个顺序展开,每一步都给出可验证的结果。
开始之前:你需要什么
- 一台 Mac:Xcode 只能在 macOS 上运行,这是硬性前提。
- Xcode:从 Mac App Store 免费下载,安装后自带 Swift 编译器和 iOS 模拟器。
- 不需要付费账号:学习和在模拟器里运行不需要 Apple Developer 付费会员,只有真机调试和上架才涉及账号问题。
装好 Xcode 后,打开它,你会看到欢迎界面。如果只是想快速试语法,不用建工程,直接选 Get started with a playground。
第一步:用 Playground 练基础语法
Playground 是 Xcode 里的交互式练习环境,左边写代码,右边立刻显示结果,非常适合入门阶段反复试错。
变量与类型
var name = "Bison" // 可变变量
let pi = 3.14159 // 常量,赋值后不能改
var count: Int = 10 // 显式声明类型
Swift 是强类型语言,但支持类型推断。let 优先于 var——能不变的就别用变量,这是 Swift 社区的普遍习惯。
可选值(Optional)
这是 Swift 最容易卡住新手的点。可选值表示“这里可能有值,也可能是 nil”。
var nickname: String? = nil
if let nickname = nickname {
print("昵称是 \(nickname)")
} else {
print("没有昵称")
}
if let 叫可选绑定,是解包可选值最常用的方式。看到编译器报 Value of optional type 'X?' must be unwrapped,基本就是忘了处理可选值。
控制流与函数
for i in 1...5 {
print(i)
}
func greet(person: String) -> String {
return "Hello, \(person)"
}
1...5 是闭区间,1..<5 是左闭右开。函数用 func 声明,参数和返回值都要标类型。
闭包
闭包是可以传递的代码块,语法比函数紧凑:
let numbers = [3, 1, 2]
let sorted = numbers.sorted { $0 < $1 }
$0、$1 是闭包的简写参数名。初学阶段先会读、会改,不必强求一次写对。
第二步:理解类、结构体与协议
Swift 的面向对象和协议编程是它区别于很多语言的地方。
| 概念 | 关键字 | 特点 |
|---|---|---|
| 类 | class |
引用类型,支持继承 |
| 结构体 | struct |
值类型,赋值时复制 |
| 枚举 | enum |
定义一组相关值,可带关联值 |
| 协议 | protocol |
定义“能做什么”,不关心“怎么实现” |
| 扩展 | extension |
给已有类型加方法,不用改原代码 |
Swift 标准库里的 String、Array、Dictionary 都是结构体。Apple 官方建议:默认用结构体,需要继承或引用语义时才用类。
协议是 Swift 的核心抽象方式。一个类型可以遵循多个协议,这比单继承灵活得多:
protocol Greetable {
func greet() -> String
}
struct Person: Greetable {
var name: String
func greet() -> String {
return "Hi, I'm \(name)"
}
}
第三步:创建第一个能跑的 App
语法练得差不多后,建一个真实工程,把知识串起来。
- 打开 Xcode,选 Create New Project。
- 选 iOS → App,点 Next。
- 填 Product Name(比如
MyFirstApp),Interface 选 SwiftUI(新手推荐,代码量少)或 Storyboard,Language 选 Swift。 - 选一个保存位置,点 Create。
工程建好后,按左上角的运行按钮(或 Cmd + R),模拟器会启动并显示你的 App。能跑起来、能看到界面,就是这一步的验证标准。
做一个最简单的交互
如果选了 SwiftUI,打开 ContentView.swift,把内容改成:
import SwiftUI
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack(spacing: 20) {
Text("点击次数:\(count)")
Button("点我") {
count += 1
}
}
}
}
@State 让变量变化时界面自动刷新。再按 Cmd + R,点按钮,数字应该会增加。这一步把变量、函数、界面三者连起来了。
常见卡点与排查方法
- 编译报错看不懂:先看报错的行号和类型,Swift 的报错通常指向具体类型不匹配。把报错信息整段复制去搜索,往往能直接找到答案。
- 模拟器起不来:检查 Xcode 是否装完(首次安装会下载额外组件),或在 Xcode → Settings → Platforms 里确认 iOS 模拟器已安装。
- 可选值相关报错:见前面的
if let部分,这是新手最高频的错误来源。 - 不知道某个 API 怎么用:在 Xcode 里按住
Option键点击类型或方法名,会弹出文档;也可以查 Apple 官方文档。
关于参考资料
Bison 的技术博客(allluckly.cn)是一个 iOS 开发技术博客,内容涵盖 iOS 开发技巧、第三方开源框架分享,以及 FFmpeg 在 iOS 上的实践(如获取摄像头麦克风、H.264 解码、推流器封装等)。它的定位偏向进阶和疑难问题,适合在掌握基础语法、能独立建工程之后,用来查具体技术点的实现思路。入门阶段仍应以 Apple 官方文档和系统性的 Swift 教程为主。
接下来学什么
基础语法和第一个 App 跑通后,可以按这个顺序推进:
- SwiftUI 布局:
VStack、HStack、List、NavigationStack。 - 数据流:
@State、@Binding、@Observable。 - 网络请求:
URLSession配合async/await。 - 数据持久化:
UserDefaults、SwiftData 或 Core Data。 - 真机调试与上架:这时才需要 Apple Developer 账号。
每一步都建议配一个能运行的小项目,而不是只看不写。Swift 的语法细节很多,只有实际敲过、报过错、改对了,才算真正掌握。