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.
Requirements
Kuery is written in Swift 4.
Installation
CocoaPods
Kuery is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Kuery'Carthage
For Carthage, add the following to your Cartfile:
github "kishikawakatsumi/Kuery"
Usage
context.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()
}Feature request for Swift Standard Library
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



