Foundation与Combine的整合
本小节我们将演示如何整合Foundation与Combine
示例一
示例一使用URLSessionTask
与JSON
解析操作符完成一次网络请求
struct DecodableExample: Decodable { }
URLSession.shared.dataTaskPublisher(for: URL(string: "https://www.avanderlee.com/feed/")!)
.map { $0.data }
.decode(type: DecodableExample.self, decoder: JSONDecoder())
示例二
使用NotificationCenter
创建一个系统闹钟更改通知的发布者
NotificationCenter.default.publisher(for: .NSSystemClockDidChange)
示例三
使用Just
发布新值并绑定到UIKit下UILabel控件的text
属性
import UIKit
let ageLabel = UILabel()
Just(28)
.map { "Age is \($0)" }
.assign(to: \.text, on: ageLabel)
示例四
定时器的基础使用,调用autoconnect
方法可使得当前定时器在订阅者有效时自动开启
let publisher = Timer
.publish(every: 1.0, on: .main, in: .common)
.autoconnect()