SuperAPI AI 工具集

swift-actor-persistence

通用与其它

查看项目

更新于 10-16 07:23

技能介绍

用途:在 Swift 5.5+ 的 iOS/macOS 应用中构建线程安全的数据持久化层,用 actor 模型替代手动的锁与 DispatchQueue 同步,结合内存缓存与文件存储,适合离线优先、本地数据存储与共享可变状态场景。

核心能力:以 actor 实现泛型仓库 LocalRepository<T: Codable & Identifiable>,内部维护以 ID 为键的字典缓存并提供 O(1) 查找;写入时更新缓存并以 .atomic 原子化写入文件,避免崩溃导致部分写入;初始化时同步加载文件内容,避免异步初始化的复杂性。actor 隔离保证序列化访问,由编译器强制执行,跨 actor 边界的数据需为 Sendable。

用法:仓库通过泛型实例化,如 LocalRepository<Question>();由于 actor 隔离,所有调用自动异步化,读取使用 await repository.find(by:) 与 await repository.loadAll(),写入使用 try await repository.save(:) 与 try await repository.delete(:)。可配合 @Observable ViewModel,在其 load 与 add 方法中 await 仓库操作并刷新列表。

限制与注意:需 Swift 5.5+;不应将内部缓存字典直接暴露给外部,不应让文件 URL 在未校验的情况下可配置,不应使用 nonisolated 绕过 actor 隔离,也无需再用 DispatchQueue 或 NSLock;所有 actor 方法调用都是 await,调用方须处于异步上下文。

暂未提供:具体安装命令、发布渠道、收费与定价信息,以及性能基准数据。