SuperAPI AI 工具集

swift-actor-persistence

设计与创作

查看项目

更新于 10-15 21:09

技能介绍

用途:在 Swift 5.5+ 中构建线程安全的数据持久化层,把内存缓存与文件存储结合,用 actor 模型在编译期消除数据竞争,替代手写锁或 DispatchQueue 同步。适用于 iOS/macOS 本地数据存储、离线优先架构,以及被多处并发访问的共享可变状态。

主要能力:提供泛型 actor 仓库 LocalRepository<T: Codable & Identifiable>,内部用 [String: T] 缓存并以 JSON 文件持久化;公开 save、delete、find(by:)、loadAll 等操作,读为 O(1) 字典查找,写同时更新缓存并原子写盘(.atomic 防止崩溃时写入不完整);初始化时同步加载文件,避免异步初始化复杂度。

使用方式:定义模型后创建仓库,例如 let repository = LocalRepository<Question>();因 actor 隔离,所有调用需 await,如 await repository.find(by: "q-001")、try await repository.save(newQuestion)。可配合 @Observable ViewModel 在 load()/add() 中调用仓库并刷新界面。

限制与注意:跨 actor 边界的数据应使用 Sendable 类型;公开 API 应只暴露领域操作而非持久化细节;不要暴露内部缓存字典,不要用 nonisolated 绕过隔离;文件 URL 可配置时需校验;调用方必须处理 async 上下文。资料未提供具体平台版本要求、性能数据或安装方式。