2017-12-07 6 views
1

スウィフト4に一般的な定義をオプションに私のクラス定義は、私がレスポンスクラスは、復号可能なクラスを介して、またはゼロの表現のいずれか初期化することができますどのよう

class Response<T : Decodable> { 
    var responseData : T? 
} 

class Test { 
    func someFunction() { 
     let serverResponse = Response<Employee>(); 
     let errorResponse = Response(); //Compilation error here 
    } 
} 

のように見えますか?

+1

ジェネリック型を使用すると、変数を宣言する場合、プレースホルダの種類が何であるかを指定します(または、それを推測することができ、十分な情報を提供する)必要があります。 1つの解決策は、Alamofireの['Result'](https://alamofire.github.io/Alamofire/Enums/Result.html)のような列挙型をラップすることです。しかし、それでも、あなたは応答タイプがどんなものになるのかを知る必要があります。私は従業員を求めていたが、間違いがあった。または、エラーが発生したときにどのようなタイプが予想されているのか本当に分かりませんか? – Rob

答えて

3

応答は、通常はこのように書かれている:

enum Response<T : Decodable> { 
    case success(T) 
    case failure(Error) 
}