iOS开发入门:Swift基础知识讲解
大家好,我是团队里负责新人培训的讲师。过去五年,我带过上百名应届生从零开始走进移动开发的世界。今天写这篇教程,是因为每次看到新同学面对 Swift 一脸迷茫的样子,我就想起自己当初学的时候——连 print 都要查半天文档。别担心,代码人生从来不是一蹴而就的,而是一行一行敲出来的。
本篇教程将带你从零搭建环境、理解核心概念,并亲手完成一个简单的“区块链小账本”示例(别被“区块链”吓到,这里只是借用它的“链式记录”思想)。全程案例驱动,每一步都有可运行的代码。准备好了吗?我们出发!
一、Swift 是什么?能用来做什么?
Swift 是苹果公司在 2014 年推出的编程语言,专门用于开发 iOS、iPadOS、macOS 等苹果平台的应用。它语法简洁、安全高效,是目前 iOS 开发的官方主力语言。
📌 小知识:你每天用的微信、抖音、支付宝 iOS 版,背后很大一部分代码就是用 Swift 写的。
虽然标题提到了“区块链”,但本文不会深入讲分布式账本或加密算法。我们只是借用“每一笔记录不可篡改、按顺序链接”的思想,做一个本地的小型记账 App,帮助你理解 Swift 的基础语法和逻辑结构。这也是我在培训中常用的实战经验——用生活化场景降低学习门槛。
二、环境准备:5 分钟搭好开发环境
所需工具
- 一台 macOS 电脑(必须!Windows 无法开发 iOS 应用)
- Xcode(苹果官方集成开发环境,免费)
安装步骤
- 打开 Mac 上的 App Store
- 搜索 “Xcode”
- 点击 “获取” 并安装(首次安装较大,约 8–10GB,请确保网络稳定)
- 安装完成后,打开 Xcode,首次启动会要求你同意协议并安装额外组件,按提示操作即可
💡 避坑指南:不要尝试在非 Mac 电脑上安装黑苹果或虚拟机跑 Xcode——对新手极不友好,且违反苹果许可协议。如果暂时没有 Mac,建议先学 Swift 基础语法(可用在线编译器),等有条件再实操。
三、Swift 核心概念:用最简单的话讲清楚
1. 变量与常量:存储数据的容器
var:变量,值可以改变let:常量,值一旦设定就不能变(推荐优先使用)
var userName = "小明" // 可以改
userName = "小红" // 合法
let birthYear = 2000 // 不能改
// birthYear = 2001 // ❌ 报错!
✅ 最佳实践:除非确定值会变,否则一律用
let。这能避免很多意外错误。
2. 数据类型:Swift 是强类型语言
常见类型:
| 类型 | 示例 | 说明 |
|---|---|---|
Int |
42, -7 |
整数 |
Double |
3.14, -0.001 |
小数(高精度) |
String |
"Hello" |
文本 |
Bool |
true, false |
是/否 |
Swift 能自动推断类型,但你也可以显式声明:
let price: Double = 9.99
let isActive: Bool = true
3. 条件判断:让程序做选择
let score = 85
if score >= 60 {
print("及格啦!")
} else {
print("加油,下次一定!")
}
4. 循环:重复做事不手累
// 打印 1 到 5
for i in 1...5 {
print("第 \(i) 次循环")
}
注意:\(i) 是字符串插值,能把变量值插入字符串中。
5. 函数:封装可复用的代码块
func sayHello(to name: String) -> String {
return "你好,\(name)!"
}
let greeting = sayHello(to: "小张")
print(greeting) // 输出:你好,小张!
func定义函数-> String表示返回一个字符串- 调用时必须传入参数
四、实战项目:做一个“区块链小账本”
我们现在用上面的知识,做一个能记录收支的小程序。每条记录包含金额、备注和时间,并按顺序保存——就像一条“链”。
第一步:定义一条记录(用结构体)
import Foundation // 用于获取当前时间
struct Transaction {
let amount: Double // 金额(正为收入,负为支出)
let note: String // 备注
let timestamp: Date // 时间
init(amount: Double, note: String) {
self.amount = amount
self.note = note
self.timestamp = Date() // 自动记录当前时间
}
}
📝 解释:
struct是 Swift 中定义“数据模型”的常用方式,比类更轻量。
第二步:创建账本(用数组存储记录)
var ledger: [Transaction] = [] // 空数组,准备存记录
第三步:添加几笔交易
ledger.append(Transaction(amount: 100, note: "工资"))
ledger.append(Transaction(amount: -30, note: "买咖啡"))
ledger.append(Transaction(amount: -15, note: "地铁票"))
第四步:计算余额并打印明细
func calculateBalance() -> Double {
var total: Double = 0
for tx in ledger {
total += tx.amount
}
return total
}
func printLedger() {
print("=== 我的账本 ===")
for (index, tx) in ledger.enumerated() {
let sign = tx.amount >= 0 ? "+" : ""
let formattedAmount = String(format: "%.2f", tx.amount)
let timeStr = tx.timestamp.description(with: .current)
print("\(index + 1). \(sign)\(formattedAmount) 元 | \(tx.note) | \(timeStr)")
}
print("当前余额:\(calculateBalance()) 元")
}
// 调用
printLedger()
运行结果(示例):
=== 我的账本 ===
1. +100.00 元 | 工资 | Jul 10, 2024 at 10:30:45 AM China Standard Time
2. -30.00 元 | 买咖啡 | Jul 10, 2024 at 10:30:45 AM China Standard Time
3. -15.00 元 | 地铁票 | Jul 10, 2024 at 10:30:45 AM China Standard Time
当前余额:55.0 元
🔗 为什么叫“区块链”小账本?
因为我们每加一条记录,就追加到数组末尾,形成一条不可逆的时间链。虽然没用到真正的加密哈希,但体现了“顺序记录、不可删除”的核心思想。这也是我在技术分享中常做的简化类比。
五、新手常见问题解答(FAQ)
Q1:Xcode 打不开,提示“需要登录 Apple ID”?
A:首次使用某些功能(如模拟器)确实需要 Apple ID,但开发普通 App 不强制。你可以跳过,或注册一个免费 Apple ID。
Q2:let 和 var 到底怎么选?
A:记住口诀:“能用 let 就不用 var”。只有当你明确知道这个值后面会变(比如循环计数器、用户输入),才用 var。
Q3:为什么我的 print 中文显示乱码?
A:Swift 对中文支持很好,乱码通常是终端编码问题。确保你在 Xcode 的控制台(Console)查看输出,而不是外部终端。
Q4:如何调试代码?
A:在行号左侧单击设置断点(出现蓝色箭头),然后运行。程序会在该行暂停,你可以在底部查看变量值。
Q5:学完这些能做什么?
A:你可以继续学习 UIKit 或 SwiftUI(做界面),把今天的账本做成图形界面 App!下一步我们就该学“如何把代码变成用户看得见的按钮和列表”。
六、学习建议:你的代码人生才刚刚开始
- 每天敲代码:哪怕只写 10 行。我当初学的时候,坚持每天写一个小函数,三个月后就能独立做简单 App。
- 不要死记语法:Swift 的设计哲学是“像读英语一样读代码”。多读、多模仿,自然就熟了。
- 善用 Playground:Xcode 自带的 Swift Playground 是绝佳的练习场,无需创建完整项目就能试代码。
- 下一步学什么?
- 学 SwiftUI:苹果新一代 UI 框架,声明式语法,上手快
- 做一个待办事项 App:结合今天的数据结构 + 简单界面
- 了解 MVC 架构:理解 App 的组织方式
最后送大家一句话:每一个复杂的 App,都是从
print("Hello, World!")开始的。你的代码人生,从此刻这一行开始书写。
希望这篇教程能成为你 iOS 开发之路的第一块垫脚石。如果你在练习中遇到问题,欢迎留言交流——毕竟,技术分享的意义,就在于让更多人少走弯路。加油!

评论 0