测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最新发布 | 2017 年 10 月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 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 会处理其余的部分。现在这个结构体已准备好进行持久化。
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 提供了一个在写入事务期间与 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 是 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)
打开一个问题或提交一个拉取请求。