更新到 Xcode12 后出现 ReactiveSwift 错误(错误消息:无法将类型 'Disposable?' 的值转换为闭包结果类型 'Void')

ReactiveSwift error after update to Xcode12( Error msg: Cannot convert value of type 'Disposable?' to closure result type 'Void')

在我更新到 Xcode12 之前,以下函数运行良好,我是 ReactiveSwift 的新手,我不知道如何解决这个问题,谢谢你的帮助!

错误消息:无法将类型 'Disposable?' 的值转换为闭包结果类型 'Void'

 public func testFunc(input: Signal<Value, Never>.Event = .completed) -> Signal<Value, Never> {

    return Signal<Value, Never> { observer, lifetime in
        return self.signal.observe { event in
            switch event {
            case .value(let value):
                observer.send(value: value)
            case .failed(_):
                observer.send(input)
            }
        }
    }
}

这是在较新的 ReactiveSwift 版本中所做的更改。您应该将它添加到传递给闭包的 lifetime 而不是返回一次性用品:

public func testFunc(input: Signal<Value, Never>.Event = .completed) -> Signal<Value, Never> {

    return Signal<Value, Never> { observer, lifetime in
        lifetime += self.signal.observe { event in
            switch event {
            case .value(let value):
                observer.send(value: value)
            case .failed(_):
                observer.send(input)
            }
        }
    }
}

虽然 switch 声明中似乎还遗漏了一些案例。