Swift Combine 之 Publisher的sink和a

2022-10-27  本文已影响0人  Smile_Later

Subscriber(这篇文章主要讲assignsink

sink操作符的代码调用

```
    let arr: [Int] = [1, 2, 100]
     
     /// `Sink` 将数组转换成一个数据流
    arr.publisher
         /// 过滤数据流中大于2的元素
         .filter{$0 > 2}
         /// 进行一次转换,转成String类型
         .compactMap{"\($0)"}
         /// 订阅数据源
         .sink { value in
             debugPrint("数据流: \(value)")
         }.store(in: &cancel)
 ```

Sink

assign操作符代码调用

```
let arr: [Int] = [1, 2, 100]
     
      /// `Assign`使用keypath进行赋值
     arr.publisher
         .filter{$0 > 2}
         .compactMap{"\($0)"}
         /// keypath 赋值
         .assign(to: \.name, on: root).store(in: &cancel)
     
     debugPrint("root name: \(root.name)")
```

Assign

上一篇下一篇

猜你喜欢

热点阅读