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

语法练得差不多后,建一个真实工程,把知识串起来。

  1. 打开 Xcode,选 Create New Project。
  2. 选 iOS → App,点 Next。
  3. 填 Product Name(比如 MyFirstApp),Interface 选 SwiftUI(新手推荐,代码量少)或 Storyboard,Language 选 Swift。
  4. 选一个保存位置,点 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 跑通后,可以按这个顺序推进:

  1. SwiftUI 布局:VStack、HStack、List、NavigationStack。
  2. 数据流:@State、@Binding、@Observable。
  3. 网络请求:URLSession 配合 async/await。
  4. 数据持久化:UserDefaults、SwiftData 或 Core Data。
  5. 真机调试与上架:这时才需要 Apple Developer 账号。

每一步都建议配一个能运行的小项目,而不是只看不写。Swift 的语法细节很多,只有实际敲过、报过错、改对了,才算真正掌握。

allluckly.cn
自学iOS开发进阶首选博客,分享高质量的iOS开发技术,开发所遇到的疑难杂症,在此都一览无余,搜寻优秀的第三方开源框架,分享给大家,iOS开发技术博客,随Bison一起走进iOS开发的大道畅游翱翔。