DataManager 2.0.1

DataManager 2.0.1

测试测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2021年2月
SPM支持 SPM

Logan GauthierChris DillardNick GriffithChris MartinBeverly MassengillMetova, Inc. 维护。



  • Logan Gauthier

DataManager

Build Status CocoaPods Compatible Documentation Coverage Status Platform Twitter

DataManager 是一个轻量级的 Core Data 工具。它不是 Core Data 的替代品/包装程序。以下是一些亮点:

  • 封装了与设置 Core Data 栈相关的样板代码。
  • 使用私有 NSPrivateQueueConcurrencyType 上下文作为根上下文,并有一个公共 NSMainQueueConcurrencyType 子上下文来设置堆栈。这种设置允许异步保存到磁盘。
  • 提供 Swift 便捷的获取方法,利用泛型来防止您每次执行获取时都需要从 NSManagedObject 处理向下转换到实体的类。

要求

  • iOS 9.0
  • Swift 4.2

安装

DataManager 通过 CocoaPods 提供使用。要安装它,只需将以下行添加到您的 Podfile 中

pod 'DataManager'

如果您想测试 DataManager 的测试版,您可以从 develop 安装最新版本

pod 'DataManager', :git => 'https://github.com/metova/DataManager.git', :branch => 'develop'

用法

设置

当您的应用程序启动时,使用数据模型名称和持久化存储文件的名称设置 DataManager

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    DataManager.setUp(withDataModelName: "MyApp", bundle: .main, persistentStoreName: "MyApp")

    /* ... */

    return true
}

这不会立即设置 Core Data 栈。堆栈在首次使用 DataManager.mainContext 时进行懒加载。

获取数据

DataManager 使用泛型,因此您不必在每次执行获取操作时都担心将 NSManagedObject 结果转换为实体的类。例如,下面 olderUsers 的类型是 [User]

let predicate = NSPredicate(format: "\(#keyPath(Person.birthDate)) < %@", someDate)
let olderUsers = DataManager.fetchObjects(entity: User.self, predicate: predicate, context: DataManager.mainContext)

删除

DataManager.delete([user1, user2], in: DataManager.mainContext)

保存

DataManager.persist(synchronously: false)

子上下文

let backgroundContext = DataManager.createChildContext(withParent: DataManager.mainContext)

backgroundContext.perform {
    /* Do heavy lifting in the background */
}

鸣谢

DataManager 由 Metova Inc. 拥有和维护

贡献者

许可证

DataManager受MIT许可证的许可。更多信息请参阅许可证文件。

替代方案