QuickPersist 1.0.1

QuickPersist 1.0.1

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2017 年 10 月
SwiftSwift 版本4.0
SPM支持 SPM

Christopher Szatmary 维护。



  • 作者:
  • Christopher Szatmary




QuickPersist 提供了一种轻松地将 Swift 结构体保存到 Realm 数据库的方法。

基本使用

可持久化

为了将结构体持久化到 Realm,结构体必须符合 Persistable 协议。
Persistable 要求符合 Codable

Persistable 需要实现两个属性。

  • typeName:一个表示结构体名称的 String
  • primaryKey:一个唯一的标识实例的 String
struct Person {
    var name: String
    var age: Int
    let id: String
}

extension Person: Persistable {
    static var typeName: String {
        return "Person"
    }
    
    var primaryKey: String {
        return id
    }
}

就是这样!QuickPersist 会处理其余的部分。现在这个结构体已准备好进行持久化。

RealmOperator

QuickPersist 提供了一个名为 RealmOperator 的类型,它允许您对包含可持久化类型的 Realm 执行基本操作。

let op = try! RealmOperator() // Creates a new RealmOperator from the default Realm.

或者:

let op = RealmOperator(realm: myCustomRealm) // Creates a new RealmOperator from the given Realm.

WriteTransaction

WriteTransaction 提供了一个在写入事务期间与 Realm 交互的接口。它只能在 RealmOperator 写入块中使用。

以下是将结构体保存到 Realm 的示例

let person = Person(name: "John Doe", age: 20, id: UUID().uuidString)

let op = try! RealmOperator()

try! op.write { (writeTransaction) in
    try! writeTransaction.add(person, update: true)
}

WriteTransaction 直接接受可持久化实例,并执行将其保存到 Realm 所需的操作。无需额外工作。

QPResults

QPResults 是 Realm 的 Results 的特殊包装器,它提供了一个轻松的方式以原始形式获取持久化值。

以下是从 Realm 获取值的示例

let op = try! RealmOperator()
let results = op.values(ofType: Person.self)
let person = results[0] // Returns an instance of Person.

或者如果您可以通过 id 获取特定值

let person = op.value(ofType: Person.self, withPrimaryKey: id)

安装

要求

  • iOS 8.0+
  • macOS 10.9+
  • tvOS 9.0+
  • watchOS 2.0+
  • Swift 4

贡献

打开一个问题或提交一个拉取请求。