无法将MutableProperty <string>绑定到带有RAC 3.0的Signal <string,noerror =“”>

时间:2015-09-15 18:12:04

标签: reactive-cocoa-3

所以我试图将这个可变属性绑定到字符串信号。

func bindViewModel() {
    let stringProp = MutableProperty<String>("")
    let (stringSignal, stringSink) = Signal<String, NoError>.pipe()

    stringProp <~ stringSignal
}

我的理解是类型与此函数签名匹配:

func <~<P : MutablePropertyType>(property: P, signal: ReactiveCocoa.Signal<P.Value, ReactiveCocoa.NoError>) -> Disposable

然而,编译器似乎对使用哪个运算符感到困惑并打印出这个错误:

error: ambiguous operator declarations found for operator
        stringProp <~ stringSignal
                   ^

这些类型似乎在我看来结账但不是根据编译器...... 知道如何解决这个绑定吗?

1 个答案:

答案 0 :(得分:0)

似乎编译器无法区分ReactiveCocoa。&lt;〜和

infix operator <~ {}
public func <~ (rac: RAC, signal: RACSignal) {
    rac.assignSignal(signal)
}

由Colin Eberhardt创建。

我不确定如何解决它。 论点完全不同......

---编辑----

infix operator <~ {
associativity right
precedence 93
}
public func <~ (rac: RAC, signal: RACSignal) {
    rac.assignSignal(signal)
}
似乎Ash Furrow已经解决了这个问题。在GitHub搜索中找到了这个。

显然将两个运算符设置为相同的优先级会强制编译器选择正确的函数。