用 Actor 隔离解决 Swift 并发中的数据竞争
从 @MainActor 到自定义 Actor,结合真实崩溃案例讲清隔离边界与常见误用。
Swift ConcurrencyDebug 9 分钟
// 清晰的依赖边界,比聪明的代码更重要
struct ContentStore {
private let repo: ArticleRepository
private let cache: Cache
func load(_ id: Article.ID) async throws -> Article {
if let cached = try cache.get(id) { return cached }
let article = try await repo.fetch(id)
try cache.set(article)
return article
}
}四个清晰的入口,让新访客 3 秒内找到方向,老读者也能快速定位。
从 @MainActor 到自定义 Actor,结合真实崩溃案例讲清隔离边界与常见误用。
为什么你的 ForEach 会整段重绘?用 Instruments 定位并修复滚动卡顿。
行号槽、窗口栏、多语言语法高亮——读代码,也像在读一份精心排版的界面。