用途:该技能面向 SwiftData 的持久化设计与代码审查,涵盖 @Model、ModelContainer、ModelContext、@Query、谓词、FetchDescriptor、Schema 迁移、@ModelActor 及 SwiftData/CloudKit 约束。纯 Core Data 工作归 core-data,UI 状态接线归 swiftui-patterns,通用 actor 诊断归 swift-concurrency。
主要能力与工作流:先盘点模型、唯一标识、关系、删除规则、约束、索引及当前存储配置,明确上下文归属与所有写入路径;再根据数据规模、UI 实时性和隔离需求选择查询与变更 API;若 Schema 变化,须定义迁移并用代表性数据副本测试;最后验证增删改查、重启持久化、失败处理及同步行为。
实现要点:为身份赋予稳定语义,关系两端都应建模并慎重选择删除规则;不要在无迁移计划时给现有存储新增唯一性、索引或非可选属性;模型上下文不是通用跨 actor 值,UI 写入留在 UI 上下文,后台持久化用 @ModelActor 或专建上下文,跨隔离边界传递 PersistentIdentifier 而非活动模型对象;保存行为要显式,生产路径不应静默吞掉持久化错误。
查询:SwiftUI 视图拥有实时查询且谓词与排序适合属性包装器时用 @Query;命令式、可复用、分页或 actor 拥有的抓取用 FetchDescriptor;尽量把过滤与排序下沉到存储,内存过滤仅适用于确证的小数据集。
迁移与限制:Schema 演进视为产品数据变更,需从真实旧 Schema 测试轻量与自定义迁移阶段及回滚预期;未经用户明确授权不得为通过迁移而删除存储。启用同步时须核对 CloudKit 兼容的 Schema 与配置,预览和测试应使用隔离存储。资料未提供具体价格、收费或平台信息。