用途:该技能用于指导开发者把 Swift 项目中的数据层从 SwiftData 迁移到 SQLiteData,并帮助判断是否值得切换。
主要能力:包含决策指南,列出应切换到 SQLiteData 的信号(十万级记录的性能问题、需要 CloudKit 记录共享、跨多表复杂查询、Swift 6 并发所需的 Sendable 值类型模型、@Model 类测试困难),以及继续使用 SwiftData 的情形(简单 CRUD)。提供模式对照表,如 @Model 类对应 @Table nonisolated struct、@Attribute(.unique) 对应 @Column(primaryKey: true)、@Query 对应 @FetchAll、@Environment(.modelContext) 对应 @Dependency(.defaultDatabase)、隐式保存对应 database.write { } 块。
使用方式:附带迁移前后代码示例(任务列表的增删查),CloudKit 共享通过 prepareDependencies 配置 SyncEngine、syncEngine.share(record:) 与 CloudSharingView 呈现原生共享界面。数据迁移强调仅改 schema 会丢失用户数据,需从 SwiftData 读取记录后批量 insert 到 SQLiteData,并校验记录数、迁移关系外键、保留 SwiftData 容器作备份、在首次启动时按 UserDefaults 版本标记执行。还给出渐进迁移策略与常见陷阱(关系改外键、级联删除写进 SQL schema、无自动反向关系)。
限制:性能对比数据为近似基准,随设备和数据形态变化;CloudKit 共享为 SQLiteData 特有,SwiftData 仅支持同步。安装命令、收费与平台信息暂未提供。