2016-07-29 25 views
1

Swiftのかなり新しい初心者(Javaから来た)。私はジェネリック関数を別のジェネリック関数から呼び出そうとしていたのですが、かなり頭痛がありました。具体的には、「一般的なパラメータTを推論できませんでした」という標準エラーメッセージが表示されます。
私は、私はそれが動作するには、このコードを修正することができ、すなわち、どのようにうまくいけば、誰かが私に解決策を与えることができ、いくつかの言語の詳細を知らないかもしれないことを前提としていますSwift、別の汎用関数でジェネリック関数を呼び出す

//Second parameter is workaround for error no generic parameter in function signature  
func performRequest<T>(request: Request, stub: T?) -> Int { 
    let result: T? = requestExecutor.execute(request) 
    return request.getId() 
} 

私はすでに非常に多くを費やしてきましたグーグルで解決策を見つけようとしたが、何も見つかりませんでした。私はTの代わりにT.Typeを使ってみましたか?パラメータではなく運がない。私はxCode 7.3.1でSwift 2.2.1を使用しています。

+2

完全な例を教えてください。 – Sulthan

答えて

0

申し訳ありませんが、私はばかです。 Sulthanのコメントのおかげで、私は私のRequestExecutorのの実現に見て、私はそのジェネリックに制約を持って実行することを実現しました、

func performRequest<T: Mappable>(request: Request, stub: T?) -> Int... 

に私のオリジナルのポストでの機能の変更後すなわち

func execute<T: Mappable>(request: Request) ... 

すべて正常に動作しています。
もう一度申し訳ありませんが、コードの別の部分に集中する方法でした。私を正しい軌道に乗せてくれたSulthanに感謝します。
うまくいけば、この回答は他の誰かにとって役に立ちます:)

関連する問題