用途:帮助开发者在 Core Data 与 SwiftData 之间做选型,并正确搭建 Core Data 堆栈、建模关系、处理并发与架构迁移。
主要能力:给出选型决策树(iOS 17+ 简单模型推荐 SwiftData;需要公开 CloudKit 数据库、自定义迁移逻辑或维护既有代码库时用 Core Data;iOS 16 及更早只能用 Core Data);提供 NSPersistentContainer 与 NSPersistentCloudKitContainer 的堆栈搭建方式;说明一对多、多对多关系与 Nullify、Cascade、Deny、No Action 删除规则;给出并发黄金法则——不要跨线程传递 NSManagedObject,改为传递 objectID 并在目标上下文重新抓取,配合 context.perform 与 async/await;介绍 @FetchRequest、relationshipKeyPathsForPrefetching、fetchBatchSize、fetchLimit 等抓取与性能优化手段;说明轻量迁移的适用范围与需要映射模型的场景。
使用方式:按文档中的 Swift 代码示例配置容器、开启 automaticallyMergesChangesFromParent 与合并策略,在后台上下文执行导入导出,在 SwiftUI 中用 @FetchRequest 替代在 view body 中直接抓取。
限制与注意:迁移必须在真机上测试,模拟器重建会删除数据库;tvOS 上 Core Data 与 CloudKit 组合存在本地存储膨胀且系统可能随时删除 Caches 的问题,文档建议改用 SQLiteData 与 CloudKit SyncEngine。具体版本要求、收费与平台支持等资料未提供。