Repolode
JohnEstropia

JohnEstropia/CoreStore

为 Core Data 提供类型安全、并发安全 Swift API 的封装库,适用于 Apple 平台应用。

Star
4,048
Fork
257
未关闭 Issue
98
最近提交
上个月

这是什么?

CoreStore 是对 Apple Core Data 框架的 Swift 封装。它用更高层的 API 替代了大量 NSManagedObjectContext、NSFetchedResultsController 和 KVO 的样板代码,用于数据的获取、查询、保存与监听。

所有写入都通过串行事务(异步、同步或 unsafe 三种)完成,主线程的 context 保持只读。模型可以用纯 Swift 的 CoreStoreObject 和带类型的 @Field 属性定义,无需 .xcdatamodeld 文件;渐进式迁移则由版本链驱动。项目还提供 Combine 发布者和 SwiftUI 属性包装器。

该库支持 iOS 16+、macOS 13+、watchOS 9+、tvOS 16+,要求 Swift 5.9,可通过 CocoaPods、Carthage 或 Swift Package Manager 安装。

核心功能

  • 01所有写入通过串行事务完成,主 context 保持只读。
  • 02通过 CoreStoreObject 在 Swift 中声明类型安全的模型,无需 .xcdatamodeld 文件。
  • 03基于模型版本链的渐进式迁移。
  • 04支持 where、orderBy 及聚合子句的链式获取与查询 API。
  • 05为列表和对象提供监听器,并支持 diffable 列表。
  • 06提供 Combine 发布者和 SwiftUI 属性包装器。

适用场景

  • 在使用 Core Data 的 iOS 应用中,需要更安全的写入并发控制。
  • 希望用纯 Swift 代码而非 Xcode 模型文件定义 Core Data 模型。
  • 借助 diffable 快照,让 UITableView 或 UICollectionView 随持久化数据更新。
  • 需要在多个已发布的应用版本之间管理数据结构迁移。

使用前须知

  • 需要 Swift 5.9,且系统版本较新:iOS 16.0+、macOS 13.0+、watchOS 9.0+、tvOS 16.0+。

收录于专题

标签

常见问题

CoreStore 是什么?
为 Core Data 提供类型安全、并发安全 Swift API 的封装库,适用于 Apple 平台应用。 CoreStore 是对 Apple Core Data 框架的 Swift 封装。它用更高层的 API 替代了大量 NSManagedObjectContext、NSFetchedResultsController 和 KVO 的样板代码,用于数据的获取、查询、保存与监听。
CoreStore 可以免费使用吗?用的什么许可证?
CoreStore 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
CoreStore 还在维护吗?
半年内有更新。CoreStore 最近一次提交是在 2026年10月2日。
CoreStore 适合用来做什么?
在使用 Core Data 的 iOS 应用中,需要更安全的写入并发控制。 希望用纯 Swift 代码而非 Xcode 模型文件定义 Core Data 模型。 借助 diffable 快照,让 UITableView 或 UICollectionView 随持久化数据更新。 需要在多个已发布的应用版本之间管理数据结构迁移。
在哪里获取 CoreStore?
源代码和安装说明在 GitHub 上:https://github.com/JohnEstropia/CoreStore

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目