AlamofireのDataResponse値を受け入れる方法を記述したいと思います。たとえば、DataResponse<Any>
またはDataResponse<String>
を渡すことがあります。私はこれを動作させる方法を見つけることができません。私はちょうどこの一般的なAlamofire DataResponseの値の参照方法
static func isTimeout(response: DataResponse) -> Bool {
if let error = response.result.error {
if error._code == NSURLErrorTimedOut {
return true
}
}
return false
}
のように「DataResonse」を使用してみた場合たとえば、私は、コンパイルエラーを取得:
Reference to generic type 'DataResponse' requires arguments in <...>
Insert <Any>.
私はDataResponse<Any>
するパラメータの種類を変更した場合しかし、それはときに私のために動作しません。 have DataResponse<String>
私は関数にDataResponse<String>
を渡すしようとすると、私が取得、コンパイル・エラーがある:
Cannot convert value of type 'DataResponse<String>' to expected argument type 'DataResponse<Any>'
私もDataResponse<AnyObject>
を試してみましたが、 とDataResponse<Value>
上記と同じエラーを持って、このエラーを得た:
Use of undeclared type 'Value'
どれでもこれを行う方法に関するアイデアなので、ちょっと異なるパラメータタイプの関数を複製する必要はありませんか?
ああ、私はを関数名の後に入れる構文については知らなかった。だから私の上記の例では、DataResponse を試したとき、私がisTimeout を実行したとしたらうまくいったように見えますか?ありがとう!それは今働いている。 –
はい、それはうまくいくはずです、それはちょうど名前のコンベンションです。 <>内のものは型パラメータと呼ばれ、DictionaryのKeyやValueなどの記述的なものもありますが、意味のある関係がない場合はT、U、Vなどの単一の文字を使用するのが一般的です –