更新到 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
声明中似乎还遗漏了一些案例。
在我更新到 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
声明中似乎还遗漏了一些案例。