A Combine micro debugging framework. It helps you log subscription events to the console so you can track their life cycle.
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
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:on:)
and logs all the received events:
Cancellable: init
...
(self.subscriptions is released from memory)
...
Cancellable: cancel
Cancellable: deinit
Add the following dependency to your Package.swift file:
.package(url: "https://github.com/combineopensource/CombinePrintout, from: "0.2")
CombineOpenSource is available under the MIT license. See the LICENSE file for more info.
Copyright (c) 2019 Combine Open Source
Created by: Marin Todorov