iOS 学习导航
# 定位
本文不是教程,是查询导航。遇到问题时,按场景找到对应的官方文档或工具入口,直接去查,不在这里长篇展开。
# 一、官方文档总入口
| 资源 | 地址 | 用途 |
|---|---|---|
| Apple Developer 文档 | https://developer.apple.com/documentation | API 参考、框架文档(英文,用浏览器整页翻译) |
| Swift 语言手册 | https://docs.swift.org/swift-book/ | 语法、语言特性 |
| WWDC 视频 | https://developer.apple.com/videos/ | 新特性发布、最佳实践(有中文字幕) |
| 开发者论坛 | https://developer.apple.com/forums/ | 官方工程师答疑 |
API 文档无官方中文版,Chrome 右键"翻译为中文"是最实用的方案,代码块不受影响。
# 二、按场景查文档
# 2.1 语言问题(Swift / Objective-C)
| 问题 | 查哪里 |
|---|---|
| 语法、可选类型、协议、泛型 | Swift Book → The Basics / Language Guide |
| 与 OC 混编、桥接 | developer.apple.com → 搜 "Swift and Objective-C in the Same Project" |
| 并发(async/await、Task、Actor) | Swift Book → Concurrency 章节 |
| 宏(Macro) | developer.apple.com → 搜 "Macros" |
# 2.2 UI 相关
| 问题 | 查哪里 |
|---|---|
| UIKit 组件(UIView、UIViewController 等) | https://developer.apple.com/documentation/uikit |
| Auto Layout / 约束 | 搜 "Auto Layout Guide" |
| SwiftUI 视图与布局 | https://developer.apple.com/documentation/swiftui |
| SwiftUI 状态管理(@State、@ObservedObject、@Environment) | SwiftUI → State and Data Flow |
| 列表 / 表格 | UITableView / UICollectionView / List |
| 导航 | UINavigationController / NavigationStack |
| Window / Scene | UIWindow、UIWindowScene、UIScene |
# 2.3 数据存储
| 场景 | 查哪里 |
|---|---|
| 轻量偏好设置 | UserDefaults |
| 关系型数据 / 本地数据库 | Core Data 或 SwiftData(iOS 17+) |
| 文件读写 | FileManager、FileManager.SearchPathDirectory |
| 键值加密存储 | Keychain(Security 框架) |
| 大文件 / 缓存 | URLCache、NSCache |
# 2.4 网络
| 场景 | 查哪里 |
|---|---|
| HTTP / HTTPS 请求 | URLSession、URLRequest |
| JSON 编解码 | Codable、JSONEncoder / JSONDecoder |
| WebSocket | URLSessionWebSocketTask |
| 后台下载 / 上传 | URLSessionConfiguration.background |
| 网络状态 | NWPathMonitor(Network 框架) |
# 2.5 多线程与并发
| 场景 | 查哪里 |
|---|---|
| 现代并发(推荐) | async/await、Task、Actor |
| 旧代码维护 | GCD(DispatchQueue)、OperationQueue |
| 主线程更新 UI | MainActor / DispatchQueue.main |
| 定时器 | Timer、Task.sleep |
# 2.6 应用生命周期
| 场景 | 查哪里 |
|---|---|
| App 启动 / 前后台 | UIApplicationDelegate、UISceneDelegate |
| SwiftUI App 生命周期 | App 协议、@main |
| 后台执行 | BGTaskScheduler、Background Tasks |
| 通知 | UserNotifications 框架 |
# 2.7 调试与性能
| 问题 | 工具 / 文档 |
|---|---|
| 崩溃排查 | Xcode 崩溃报告、MetricKit、Crashlytics |
| 内存泄漏 / 循环引用 | Instruments → Leaks、Allocations |
| 性能瓶颈 | Instruments → Time Profiler |
| 启动耗时 | Instruments → App Launch |
| 视图层级调试 | Xcode → Debug View Hierarchy |
| 控制台日志 | OSLog(推荐)、print |
| 单元 / UI 测试 | XCTest |
# 2.8 发布与上架
| 场景 | 查哪里 |
|---|---|
| 证书与签名 | developer.apple.com → Account → Certificates |
| TestFlight 内测 | App Store Connect → TestFlight |
| App Store 审核指南 | https://developer.apple.com/app-store/review/guidelines/ |
| 隐私清单(Privacy Manifest) | 搜 "Privacy Manifest Files" |
| 内购(IAP) | StoreKit 框架 |
| 上架提交流程 | App Store Connect Help |
# 2.9 系统能力
| 能力 | 框架 |
|---|---|
| 定位 / 地图 | CoreLocation、MapKit |
| 相机 / 相册 | AVFoundation、Photos(PHPicker) |
| 蓝牙 | CoreBluetooth |
| 健康数据 | HealthKit |
| Widget / 锁屏组件 | WidgetKit |
| 推送通知 | UserNotifications + APNs |
| Face ID / Touch ID | LocalAuthentication |
| 快捷指令 | App Intents |
# 三、开发环境
| 工具 | 说明 |
|---|---|
| Xcode | 官方 IDE,Mac App Store 安装 |
| Simulator | Xcode 自带模拟器 |
| Instruments | Xcode → Open Developer Tool → Instruments |
| Swift Package Manager | Xcode → File → Add Package Dependencies |
| CocoaPods | 老项目仍在用,新项目优先 SPM |
| Fastlane | 自动化打包、签名、上架(命令行) |
# 四、常用第三方库(按需引入)
| 用途 | 库 |
|---|---|
| 网络请求 | Alamofire(简单场景用 URLSession 即可) |
| 图片加载 | Kingfisher(SwiftUI/UIKit)、SDWebImage(OC 老项目) |
| 自动布局 | SnapKit(UIKit 代码布局) |
| JSON | 系统 Codable 足够,一般不需要第三方 |
| 数据库 | Realm(替代 Core Data 的轻量方案) |
原则:能不用第三方就不用,系统框架优先,减少维护成本和审核风险。
# 五、学习路径建议
| 阶段 | 重点 |
|---|---|
| 入门(0-1月) | Swift 语法基础 + Xcode 操作 + 写一个简单 UIKit 页面 |
| 基础(1-3月) | Auto Layout、UITableView、网络请求、数据存储、GCD |
| 进阶(3-6月) | SwiftUI、async/await、架构模式(MVVM)、内存管理、Instruments |
| 高级(6月+) | 性能优化、组件化、CI/CD、系统能力深度集成 |
# 六、外部资源
| 资源 | 地址 | 说明 |
|---|---|---|
| Stanford CS193p | https://cs193p.sites.stanford.edu/ | 经典公开课,SwiftUI 版 |
| Ray Wenderlich | https://www.raywenderlich.com/ | 高质量教程(付费为主) |
| AppCoda | https://www.appcoda.com/ | 初学者友好 |
| Hacking with Swift | https://www.hackingwithswift.com/ | 免费,Paul Hudson,示例丰富 |
| 开源 iOS App 集合 | https://github.com/dkhamsing/open-source-ios-apps | 参考项目结构 |
# 七、常见问题速查
| 问题 | 答案 |
|---|---|
| 必须用 Mac 吗? | 是,Xcode 仅支持 macOS |
| Swift 还是 OC? | 新项目学 Swift,维护老项目再补 OC |
| 最低支持版本? | 目前建议 iOS 15+,覆盖绝大多数设备 |
| 用 UIKit 还是 SwiftUI? | 新项目优先 SwiftUI;需要精细控制或兼容老系统用 UIKit |
| 遇到崩溃怎么办? | 先看崩溃栈 → 定位代码行 → 复现 → 加断点排查 |
| 文档看不懂? | 浏览器整页翻译 + 看官方示例代码(每个 API 页面底部常有 sample) |
上次更新: 2026/09/10, 20:52:09