无法将类型((()throws-> Void?)->()'的值转换为预期参数类型'(((Void)throws-> Void)?''

时间:2019-07-16 13:52:26

标签: swift rx-swift throws

我有一个反应性方法,应该将((Void) throws -> Void)?返回到.on(onNext: myUIComponent.rx.function)中使用,但是无论我做什么,我都无法得到预期的结果。

我曾经尝试

func name() throws -> Void?

func name(xpto: ((Void) throws -> Void?) = nil)

有人有主意吗?

2 个答案:

答案 0 :(得分:2)

您尝试过

func name(xpto: ((Void) throws -> Void)? = nil)

(在括号外的{?。)这使整个闭包为可选,而不是使整个闭包为空的可选,这没有意义。

答案 1 :(得分:0)

D'oh,不需要任何操作,只需创建一个func name()而无需返回

extension Reactive where Base: ReactiveUIComponent {
    func name() {
        ...
    }
}

button.rx.tap
    .do(onNext: reactiveUIComponent.rx.name)
    ...