swift - 响应式(Reactive) cocoa 尝试图返回类型

标签 swift swift2 reactive-cocoa reactive-cocoa-3 reactive-cocoa-4

我想在 SignalProducerType 上创建扩展,如下所示。

extension SignalProducerType{
    func mapR() -> SignalProducer<[String:AnyObject], XError> {
            return attemptMap { (value: [String:AnyObject]) -> Result<[String:AnyObject], XError> in
                return Result(value: ["1":1])
            }
        }
}

XError 被定义为 ErrorType

public enum XError: ErrorType{
    case Invalid
    case Unsuccessful
}

但这不会编译,并且会出现错误。

'attemptMap' produces 'SignalProducer', not the expected contextual result type 'Result<[String : AnyObject], XError>' (aka 'Result, XError>')

最佳答案

您正在扩展具有通用关联类型的 SignalProducerType ValueError ,这意味着 self 是一个泛型类型,例如SignalProducer<Value, Error> 。因此,您不能使用具体值类型 [String:AnyObject] 和具体错误类型 XError 调用 attempMap。

替换第一行extension SignalProducerType

extension SignalProducerType where Value == [String:AnyObject], Error == XError

关于swift - 响应式(Reactive) cocoa 尝试图返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38320976/

相关文章:

swift - 如何在 Swift 中 NSLog 一个可选的 Int?

ios - 如何使用swift在IOS App中缓存过期图像

ios - 仅当某些特定的 iOS Swift 代码在 Debug模式下运行时,我如何才能运行它?

ios - 如何绑定(bind)在 objc 中更改的枚举变量?

ios - 如何使用 ReactiveCocoa 来满足这种情况

swift - NSButton 标题不是垂直居中而是稍低一些

ios - SpriteKitPhysicsBody非矩形碰撞

ios - 使用联系人框架缓慢获取联系人

reactive-cocoa - react 性 cocoa : Difference between binding to a Signal or a SignalProducer?

Swift:guard let 与 if let