SuperAPI AI 工具集

swiftdata

数据与分析

查看项目

更新于 10-16 05:05

技能介绍

用途:为 iOS/macOS 应用提供 SwiftData 本地持久化方案,覆盖 @Model 建模、ModelContainer 管理、查询与迁移,适用于本地存储、缓存以及可选的 iCloud/CloudKit 同步。

主要能力:@Model 定义 schema,ModelContext 作为工作单元,ModelContainer 承载存储;UI 侧配合 SwiftUI 使用 @Query 与 .modelContainer;通过 #Predicate 过滤,FetchDescriptor 读取;支持 lightweight 与 versioned schema 迁移;可选 CloudKit(cloudKitDatabase)同步;提供 ModelActor 等并发模式与测试策略。

使用方式:按 Models/ 与 Persistence/ 组织,Models 不含网络逻辑;一个 app 一个 container(测试可用 in-memory)。规则:container 只创建一次并注入 context,不在每个 View 里实例化;写入放在正确 isolation(UI 观察用 MainActor,批量导入用后台 context);context.save() 需处理错误;显式声明 @Relationship 删除规则;SwiftUI 根部设置 .modelContainer(stack.container);编辑时先修改 @Model 再由 intent 保存;测试用 isStoredInMemoryOnly: true。

限制与注意:不要跨 actor 传递 ModelContext,改用 PersistentIdentifier 并重新获取;生产环境禁止重置 store;属性变更需版本化并给新属性设默认值;CloudKit 需真实容器与合并策略;避免 @Query 无 sort、全局静态 ModelContext、在 body 中做 fetch。资料未提供安装命令、定价与具体平台版本要求。