Skip to content

QueryKit/RxQueryKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c55f45f · Mar 14, 2021

History

44 Commits
Nov 16, 2020
Sep 6, 2015
Nov 16, 2020
Nov 16, 2020
Mar 14, 2021
Sep 6, 2015
Sep 6, 2015
Mar 14, 2021
Dec 10, 2015
Mar 14, 2021

Repository files navigation

QueryKit Logo

RxQueryKit

RxSwift extensions for QueryKit.

Usage

QuerySet

RxQueryKit extends QueryKit and provides methods to evaluate and execute operations as observables.

let queryset = Person.queryset(context)
    .filter { $0.age > 25 }
    .orderBy { $0.name.ascending }

You can subscribe to any changes to the results of this queryset using the following:

queryset.objects().subscribeNext {
  print($0)
}

You can also subscribe to the number of matching objects:

queryset.count().subscribeNext {
  print("There are now \($0) people who are more than 25.")
}

Managed Object Context

RxQueryKit provides extensions on managed object context to observe when the objects in a context change or when a context will or did save.

It provides a type safe structure providing the changes objects.

context.qk_objectsDidChange().subscribeNext { notification in
  print("Objects did change:")
  print(notification.insertedObjects)
  print(notification.updatedObjects)
  print(notification.deletedObjects)
}

context.qk_willSave().subscribeNext { notification in
  print("Context will save")
}

context.qk_didSave().subscribeNext { notification in
  print("Context did save")
}

Installation

CocoaPods is the recommended way to add RxQueryKit to your project.

pod 'RxQueryKit'

License

QueryKit is released under the BSD license. See LICENSE.