【问题标题】:No exact matches in call to instance method 'subscribe', Combine Freamwork [duplicate]调用实例方法“订阅”时没有完全匹配,组合框架 [重复]
【发布时间】:2021-06-12 15:50:51
【问题描述】:

当我想将订阅者分配给发布者时,我收到此错误:

对实例方法“订阅”的调用没有完全匹配

我在ViewdidLoad写代码:

let textPublisher = NotificationCenter.Publisher(center: .default, name: .labelChange).map({ ($0.object as! String) })
let textsubscriber = Subscribers.Assign(object: textLabel, keyPath: \.text)
textPublisher.subscribe(textsubscriber)

【问题讨论】:

    标签: swift combine


    【解决方案1】:

    $0.object 转换为可选。

    .map({ ($0.object as? String)})
    

    对于.subscribe,需要与.Publisher 相同的类型。但在您的情况下,发布者返回字符串,订阅者返回可选字符串,因此在发布者中使用可选字符串来解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-14
      • 2022-11-09
      • 2022-09-28
      • 2018-09-19
      • 2020-09-16
      • 2017-12-19
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多