写在前面
- 关于代码和影片
- 关于邀请码
Chapter One Combine 中的订阅和发布模型
- 影片地址
- Combine 中的发布者和订阅者
- 观察 Combine 的事件订阅模型
- What’s next?
模拟 Subscription 实现 - I
- 影片地址
- 一个完整的订阅发布模型
- 自定义 Subscription 实现
- What’s next?
模拟 Subscription 实现 - II
- 影片地址
- 自定义 Publisher
- What’s next?
模拟 Subscription 实现 - III
- 影片地址
- 自定义 CustomScan
- 通过单元测试验证模型
- What’s next?
让 CustomSubject 线程安全
- 影片地址
- AtomicBox
- CustomSuject 的线程安全性
- What’s next?
让 CustomSubject 线程安全
- 影片地址
- 共享 Subject
- 缓存计算出来的事件
- What’s next?
实现自定义的事件缓冲区 - I
- 影片地址
- 定义 Buffer
- 自定义 SubscriptionBehavior
- What’s next?
实现自定义的事件缓冲区 - I
- 影片地址
- BufferSubject
- 用单元测试验证结果
- What’s next?
有些意外的 Subject 生命周期
- 影片地址
- 从一个最自然的模型开始
- 不会自动取消的订阅者
- 一个不需要任何强引用的场景
- What’s next?
Combine 中的多重订阅 - I
- 影片地址
- 什么是多重订阅呢
- MergeSink
- What’s next?
Combine 中的多重订阅 - II
- 影片地址
- 从测试用例开始
- 无法“续命”的订阅
- What’s next?
Combine 事件供给机制的回顾
- 影片地址
- CustomDemandSink
- CustomDemandSink
- 编写测试用例
- What’s next?
Combine 中的异步事件调度
- 影片地址
- 一个形式上异步的测试用例
- 一个会丢事件的订阅场景
- 一个便于观察 Publisher 的方法
- 重新观察之前的丢消息场景
- 妥善使用 receive(on:) 的方法
- What’s next?