前言
我这里是macOS Catalina(10.15),如果是macOS 11(big sur) 和 macOS 12(Monterey)也适用。
老版本的macOS有些不被支持,请查阅相关文档
一、Swift 语言简介
Swift 是 Apple 于 2014 年推出的现代编程语言,用于开发 iOS、macOS、watchOS 和 tvOS 应用。它结合了 C 的性能和脚本语言的易用性,旨在替代 Objective-C。
核心特性:
- 安全设计:可选类型(Optionals)避免空指针异常
- 高性能:LLVM 编译器优化,接近 C++ 的运行速度
- 易读语法:类型推断、简洁闭包、字符串插值
- 交互式开发:Playground 实时代码预览
- 内存管理:自动引用计数(ARC)简化内存管理
- 跨平台:支持 Linux/Windows,服务端开发
版本演进:
| 版本 |
年份 |
重要特性 |
| Swift 1.0 |
2014 |
初始发布 |
| Swift 2.0 |
2015 |
错误处理(do-try-catch) |
| Swift 4.0 |
2017 |
Codable 协议 |
| Swift 5.0 |
2019 |
ABI 稳定性 |
| Swift 5.9 |
2023 |
宏(Macros)支持 |
二、macOS 开发环境配置
1. 安装 Xcode
- 打开 App Store
- 搜索 “Xcode”
- 点击”获取” → “安装”(约 10GB 空间)
- 安装后启动,接受许可协议
2. 验证安装
3. 创建 Swift Playground(可选)
- 打开 Xcode → File → New → Playground
- 选择 “macOS” → “Blank”
- 输入测试代码:
1 2
| import Foundation print("Hello, Swift!")
|
三、计算器开发实战
1. 创建新项目
- Xcode → File → New → Project
- 选择 macOS → App → Next
- 输入产品名:
SimpleCalculator
- 语言选择 Swift,界面选择 SwiftUI
2. 界面设计(SwiftUI)
修改 ContentView.swift:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| import SwiftUI
struct CalculatorButton: View { var title: String var action: () -> Void var body: some View { Button(action: action) { Text(title) .font(.title) .frame(width: 60, height: 60) .background(Color.gray.opacity(0.2)) .cornerRadius(30) } .buttonStyle(PlainButtonStyle()) } }
struct ContentView: View { @State private var display = "0" @State private var currentNumber: Double = 0 @State private var previousNumber: Double = 0 @State private var operation: String? = nil let buttons = [ ["7", "8", "9", "÷"], ["4", "5", "6", "×"], ["1", "2", "3", "-"], ["0", ".", "=", "+"] ] var body: some View { VStack(spacing: 20) { Text(display) .font(.system(size: 48)) .frame(maxWidth: .infinity, alignment: .trailing) .padding(.horizontal) ForEach(buttons, id: \.self) { row in HStack(spacing: 20) { ForEach(row, id: \.self) { button in CalculatorButton(title: button) { buttonTapped(button) } } } } } .frame(width: 300, height: 400) } func buttonTapped(_ button: String) { switch button { case "0"..."9": if display == "0" { display = button } else { display += button } currentNumber = Double(display) ?? 0 case ".": if !display.contains(".") { display += "." } case "+", "-", "×", "÷": previousNumber = currentNumber operation = button display = "0" case "=": if let op = operation { switch op { case "+": currentNumber = previousNumber + currentNumber case "-": currentNumber = previousNumber - currentNumber case "×": currentNumber = previousNumber * currentNumber case "÷": currentNumber = previousNumber / currentNumber default: break } display = String(format: "%g", currentNumber) operation = nil } default: break } } }
|
3. 添加清除功能
在 ContentView 结构内添加:
1 2 3 4 5 6 7 8 9
| HStack { CalculatorButton(title: "C") { display = "0" currentNumber = 0 previousNumber = 0 operation = nil } }
|
4. 运行效果
1. 点击 **▶** 按钮运行
2. 将显示带网格按钮的计算器界面
3. 支持连续计算:`5 + 3 = 8 → × 2 = 16`
四、项目优化与调试
1. 界面美化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| .background(buttonColor(title)) .foregroundColor(buttonTextColor(title))
func buttonColor(_ title: String) -> Color { if ["+", "-", "×", "÷", "="].contains(title) { return .orange } return Color.gray.opacity(0.2) }
func buttonTextColor(_ title: String) -> Color { return ["+", "-", "×", "÷", "="].contains(title) ? .white : .primary }
|
2. 调试技巧
- 实时预览:Canvas 面板(⌥⌘↩ 打开)
- 控制台输出:⌘⇧C 查看调试信息
- 断点调试:在代码行号旁点击添加断点
3. 项目打包
- 菜单:Product → Archive
- 选择 “Distribute App”
- 导出为 “macOS App” 或安装包
五、总结
Swift 语言核心优势:
✅ 开发效率:简洁语法减少 40% 代码量(相比 Objective-C)
✅ 内存安全:可选类型和 ARC 防止常见内存错误
✅ 现代特性:协议扩展、元组、模式匹配
✅ 生态系统:与 Apple 平台深度集成
SwiftUI 框架亮点:
- 声明式语法:UI = f(state)
- 实时预览:所见即所得开发
- 跨 Apple 平台:相同代码适配 iOS/macOS/watchOS
- 响应式设计:自动状态更新
学习路径建议:
- 掌握基础语法:变量/函数/控制流
- 理解可选类型和错误处理
- 学习 SwiftUI 数据流(@State/@Binding)
- 实践 Combine 框架响应式编程
- 探索 Swift 服务端开发(Vapor 框架)
版权声明: 此文章版权归曦曦所有,如有转载,请注明来自原作者