RealmTypeSafeQuery
A type-safe Realm query extensions using Swift 4's Smart KeyPaths.
Requirements
RealmTypeSafeQuery is written in Swift 4.
Installation
CocoaPods
RealmTypeSafeQuery is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'RealmTypeSafeQuery'
Carthage
For Carthage, add the following to your Cartfile
:
github "kishikawakatsumi/RealmTypeSafeQuery"
Description
RealmTypeSafeQuery provides type safety, code completion and avoidance of typos against NSPredicate
queries.
Before
realm.objects(Person.self).filter("name == %@", "Katsumi")
realm.objects(Person.self).filter("age > %@", 20)
After
realm.objects(Person.self).filter(\Person.name == "Katsumi")
realm.objects(Person.self).filter(\Person.age > 20)
The following code should be a compile error.
realm.objects(Person.self).filter(\Person.name > 20) // Compile error
realm.objects(Person.self).filter(\Dog.name == "John") // Compile error
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