A Combine micro debugging framework. It helps you log subscription events to the console so you can track their life cycle.
Usage
A debugging print sink
The built-in print() operator is useful but you still need to add a subscriber to your subscription. printSink() is a subscriber that you can use to debug a subscription without the need to add a separate subscriber like so:
Just(["One", "Two"])
.printSink()
printSink() will subscribe the publisher and log all events like so:
Sink: output(["One", "Two"])
Sink: finished
A debugging print cancellable
If you’re building more complex memory management logic or not sure when are your cancellables released you can use printCancellable() to log a given Cancellable‘s life cycle like so:
Just(["One", "Two"])
.assign(to: \.model, on: self)
.printCancellable()
.store(in: &subscriptions)
printCancellable() wraps the AnyCancellable returned from assign(to) and logs all the received events:
Cancellable: init
...
(self.subscriptions is released from memory)
...
Cancellable: cancel
Cancellable: deinit
Installation
Swift Package Manager
Add the following dependency to your Package.swift file:
A Combine micro debugging framework. It helps you log subscription events to the console so you can track their life cycle.
Usage
A debugging print sink
The built-in
print()
operator is useful but you still need to add a subscriber to your subscription.printSink()
is a subscriber that you can use to debug a subscription without the need to add a separate subscriber like so:printSink()
will subscribe the publisher and log all events like so:A debugging print cancellable
If you’re building more complex memory management logic or not sure when are your cancellables released you can use
printCancellable()
to log a givenCancellable
‘s life cycle like so:printCancellable()
wraps theAnyCancellable
returned fromassign(to
)
and logs all the received events:Installation
Swift Package Manager
Add the following dependency to your Package.swift file:
License
CombineOpenSource is available under the MIT license. See the LICENSE file for more info.
Credit
Copyright (c) 2019 Combine Open Source
Created by: Marin Todorov