CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✓ |
| LangLanguage | SwiftSwift |
| License | MIT |
| ReleasedLast Release | Sep 2017 |
| SwiftSwift Version | 4.0 |
| SPMSupports SPM | ✓ |
Maintained by kishikawa katsumi.
Kuery, a type-safe Core Data query API using Swift 4's Smart KeyPaths. Inspired and borrowed a lot of things from QueryKit and RealmEx.
Kuery is written in Swift 4.
Kuery provides type safety, code completion and avoidance of typos against NSPredicate queries.
NSPredicate(format: "name == %@", "Katsumi")
NSPredicate(format: "age > %@", 20)Query(Person.self).filter(\Person.name == "Katsumi")
Query(Person.self).filter(\Person.age > 20)The following code should be a compile error.
Query(Person.self).filter(\Person.name > 20) // Compile error
Query(Person.self).filter(\Dog.name == "John") // Compile errorcontext.perform {
let results = try Query(Person.self)
.filter(\Person.name == "Katsumi")
.execute()
}context.perform {
let results = try Query(Person.self)
.filter(\Person.age == 36)
.execute()
}context.perform {
let results = try Query(Person.self)
.filter(\Person.age > 20)
.execute()
}context.perform {
let results = try Query(Person.self)
.filter(\Person.name == "Katsumi")
.filter(\Person.age == 36)
.execute()
}context.perform {
let results = try Query(Dog.self)
.filter(\Dog.owner == person)
.execute()
}It requires a string representation of KeyPath to construct NSPredicate from KeyPath. However, the API is not officially visible currently. The feature request is tracked at SR-5220.
[SR-5220] Expose API to retrieve string representation of KeyPath - Swift