Foundation与Combine的整合

本小节我们将演示如何整合Foundation与Combine

示例一

示例一使用URLSessionTaskJSON解析操作符完成一次网络请求

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()

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1