CoreData 很复杂。它最初被设计为注重 I/O 性能的应用程序的数据层,但随着时间的推移,硬件变得更加强大,而 CoreData 的复杂性仍然存在(笑)。在现代应用程序中,构建基于 CoreData 的数据层既昂贵又常常是不合理的决定。
即使 NSPersistentContainer 也不能免除我们跟踪与上下文关联的托管对象的生命周期,并记住在上下文队列上进行读取/写入的需要。此外,应用程序通常还有第二组数据模型,类似于托管对象以及用于在两组模型之间进行转换的代码。
Apple 意识到了所有这些问题,并在现代指南中更倾向于基于 Codable 模型的数据持久化。
与此同时,CoreData 也有许多优点 - 用于数据模型的强大的可视化编辑器、自动迁移、简化的(与 SQL 相比)查询系统、开箱即用的安全多线程数据访问等等。
Sworm 是一个工具,它向开发者隐藏了 CoreData 的复杂性,但保留了其优点。
使用 SPM
dependencies: [
.package(url: "https://github.com/prisma-ai/Sworm.git", .upToNextMajor(from: "1.0.0"))
]