内容超级全面,涵盖:
iOS 运行机制
Xcode / Swift / SwiftUI
UIKit(传统 UI)
SwiftUI(2025 主流)
App 生命周期
ViewController
导航与多界面
多线程
网络通信
数据存储
权限
架构模式(MVC / MVVM / VIPER)
真机调试/发布上线流程
📘 **《iOS 开发基础知识大全》
(2025 Swift + SwiftUI 主流体系)**
⭐ 目录
iOS 是什么?底层是什么?
iOS 应用结构(IPA → Bundle → 沙盒)
Xcode 开发工具全集
Swift 语言基础(简明版)
UIKit UI 开发基础(Storyboard / XIB / 纯代码)
SwiftUI(2025 主流 UI 框架)
UIViewController 全解析
导航与多界面跳转(push/present)
AutoLayout 自动布局
TableView / CollectionView(列表核心)
网络开发(URLSession、Alamofire)
本地数据(UserDefaults、Keychain、SQLite、CoreData)
多线程(GCD、OperationQueue)
iOS 权限体系
APP 生命周期
架构模式(MVC / MVVM / VIPER)
APP 签名、打包、上架 App Store
性能优化
1️⃣ iOS 是什么?
iOS = 基于 Darwin / Unix 的操作系统
→ 内核:XNU
→ App 层:UIKit / SwiftUI Framework
→ 运行机制:沙盒、权限严格、能耗敏感
2️⃣ iOS 应用结构(IPA)
一个 iOS 应用 = IPA 文件(可理解为 ZIP)
内部结构:
MyApp.app/
├── Info.plist // 配置信息(权限、名称、版本)
├── Assets.car // 图片资源
├── Frameworks/ // 外部库
├── MyApp // 可执行文件(Swift/ObjC)
├── Base.lproj/ // Storyboard / XIB
3️⃣ Xcode(开发环境)
Xcode 提供:
代码编辑
Interface Builder(做 UI)
模拟器
证书管理
Profiling 性能分析
App Store 发布工具
2025 推荐:
Xcode 16 + Swift 5.9 + iOS 18
4️⃣ Swift 基础(超简明)
Swift 是:
类型安全
快速
支持泛型、协议扩展
更安全的内存管理
基本语法:
let a = 10 // 不可变变量
var b = 20 // 可变变量
func add(_ x: Int, _ y: Int) -> Int {
return x + y
}
类:
class Person {
var name: String
init(name: String) { self.name = name }
}
结构体:
struct User {
var id: Int
}
协议(接口):
protocol Printable {
func printMe()
}
5️⃣ UIKit(传统 iOS UI 框架)
UIKit = iOS UI 的老牌基础
包含:
UIView(视图)
UILabel、UIButton、UITextField
UITableView、UICollectionView
UINavigationController
UITabBarController
AutoLayout
UIKit 的核心是:
ViewController 管理界面 + AutoLayout 管理布局
6️⃣ SwiftUI(2025 年苹果主推)
SwiftUI 是声明式 UI:
struct ContentView: View {
var body: some View {
VStack {
Text("Hello iOS")
Button("点我") {
print("clicked")
}
}
}
}
特点:
✓ 写法更少
✓ 自适应多平台(iPad/iPhone/Mac)
✓ 动画简单
✓ 状态驱动 UI(State/Binding/ObservableObject)
SwiftUI 未来会取代 UIKit(实际公司现在是混合使用)。
7️⃣ UIViewController(iOS 开发的核心)
生命周期:
viewDidLoad() // 初始化视图
viewWillAppear()
viewDidAppear()
viewWillDisappear()
viewDidDisappear()
deinit // 控制器销毁
角色:
控制页面和 UI
接收用户事件
处理跳转
管理网络数据返回
8️⃣ 界面跳转
push(导航栈)
navigationController?.pushViewController(vc, animated: true)
present(模态)
present(vc, animated: true)
传参
vc.userId = 123
9️⃣ AutoLayout(自动布局约束)
布局方式:
NSLayoutConstraint(手写约束)
Visual Format
Storyboard + 拖拽
Masonry(Swift 版 SnapKit)
SwiftUI 完全不需要 AutoLayout
AutoLayout 目标:
适配所有屏幕
多语言
横竖屏切换稳定
🔟 列表开发(最常用功能)
UITableView(单列表)
实现三个协议:
numberOfRows
cellForRow
didSelectRow
UICollectionView(网格/卡片流)
高度可自定义 → 适合微博、抖音卡片瀑布流
1️⃣1️⃣ iOS 网络开发
系统原生:URLSession
let url = URL(string: "https://api.xxx.com/user")!
let task = URLSession.shared.dataTask(with: url) { data, resp, error in
// JSON 解析
}
task.resume()
第三方主流:Alamofire
AF.request("https://api.xxx.com").responseJSON { resp in
print(resp.value)
}
JSON 解析:Codable
struct User: Codable {
let id: Int
let name: String
}
1️⃣2️⃣ 数据存储
UserDefaults(键值对)
UserDefaults.standard.set("aaa", forKey: "token")
Keychain(安全存储)
用于 token、密码
SQLite(本地数据库)
第三方库:
FMDB(Swift/ObjC)
GRDB
CoreData(苹果官方 ORM)
类似 Room/Entity-Dao-Repository
1️⃣3️⃣ 多线程(iOS 最坑的部分)
使用 GCD:
主线程:
DispatchQueue.main.async { ... }
后台线程:
DispatchQueue.global().async {
// 耗时任务
}
延时:
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { ... }
1️⃣4️⃣ 权限系统
权限声明在 Info.plist:
相机:NSCameraUsageDescription
相册:NSPhotoLibraryUsageDescription
麦克风:NSMicrophoneUsageDescription
位置:NSLocationWhenInUseUsageDescription
iOS 权限提示非常严格,文案必须写人在话语。
1️⃣5️⃣ App 生命周期(重要)
AppDelegate:
application(_:didFinishLaunchingWithOptions:)
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
用途:
初始化 SDK
监听后台/前台
保存数据
1️⃣6️⃣ 架构模式
✔ MVC(老项目主流)
控制器太大 → Massive View Controller
✔ MVVM(2025 主流)
视图和业务解耦
ViewModel 管理数据
SwiftUI 内置就是 MVVM
✔ VIPER(大型项目)
分层更细
但复杂度很高
1️⃣7️⃣ iOS 真机调试 / 打包 / 上架流程
必要条件:
Apple Developer (¥688/年)
设备 UDID
证书(证书 + Provisioning Profile)
打包流程(Xcode)
Archive → Distribute App → App Store Connect
上传后:
TestFlight 测试
审核(1~7天)
上架
1️⃣8️⃣ 性能优化(高级)
Instruments 性能分析
内存泄露检测
CPU / GPU Profile
Swift Struct 优化
避免主线程阻塞
图片缓存 / 异步渲染
网络请求合并/节流
📌 一句话总结 iOS 基础:
iOS 开发的核心是:
Swift → ViewController → UIKit/SwiftUI → 网络 → 数据 → 多线程 → 架构 → 沙盒 → 安全体系。
评论