Errata for Combine: Asynchronous Programming with Swift 2nd Edition

Creating this topic to catch any typos and bugs in the 2nd Edition of Combine: Asynchronous Programming with Swift.

I notice that there are some issues with app in Chapter 20, it seems there are some problem with Yandex free translation service. (Thanks to this post: Chapter 20: Translation service no longer supports free accounts) It would be nice if this can be updated and mentioned somewhere in the forum.

@xlzhsteven Thanks very much for sharing this. I do apologize for the inconvenience that this has caused you. Most likely in a new edition, this will be rectified.


1 Like

Chapter 7: I believe that following sentence “… value that doesn’t conform to Comparable” should be “… value that doesn’t conform to Equitable”.

Chapter 18: First two print("subscription2 … should be print("subscription1

In chapter 7, when describing the allSatisfy operator, the operator is described as being greedy. However, the operator will emit false and cancel the subscription as soon as the predicate doesn’t pass , making it lazy IMO.

Thank you for the amazing content.

In chapter 2, under Hello Cancellable, this code is referenced from the Subscriber example:


It is said that we are able to call cancel on the subscription because the Subscription protocol inherits from Cancellable. Although it is the case that Subscription inherits Cancellable, the subscription in the code is an instance of AnyCancellable, which does not conform to Subscription (but AnyCancellable does conform to Cancellable, so that seems like the reason we can call cancel on the subscription).

Maybe I am missing the intention of this paragraph, since the paragraph above it acknowledges the subscription is an instance of AnyCancellable. Before checking the documentation, I assumed that the subscription instance was also a Subscription, but now I see it is not.