0

以下のように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' 'SignalProducer' を生成、ない 期待されるコンテキスト結果の型は '< [文字列:ANYOBJECT】その結果、Xerrorが>' (別名 'の検索結果を、Xerrorが>')

+0

との最初の行extension SignalProducerTypeを交換してください。 Result 、XError>を返すと、試行マップがその型を返すので、正常であるはずです。 – Eluss

答えて

0

ます汎用の関連タイプValueErrorを持つSignalProducerTypeを拡張しています。これは、selfが汎用タイプであることを意味します。 SignalProducer<Value, Error>。したがって、具体的な値型[String:AnyObject]と具象エラー型XErrorを指定してattempMapを呼び出すことはできません。

あなたはMAPRメソッドから期待されるタイプを返さない

extension SignalProducerType where Value == [String:AnyObject], Error == XError 
関連する問題