XCode 7.3.1でSwift 2.2を使用していて、別のGeneric
関数からGeneric
関数を呼び出そうとしています。Swift Generic関数が別のGeneric関数を呼び出す
コード
class Thing1 {
let variable: SomeProtocol
init<A: SomeProtocol>(variable: A) {
self.variable = variable
self.add1(self.variable)
}
func add1<A: SomeProtocol>(stuff: A) {
let thing: Thing2 = Thing2()
thing.add2(stuff)
}
}
class Thing2 {
func add2<A: SomeProtocol>(stuff: A) {
}
}
protocol SomeProtocol { }
add1("a") // Cannot invoke 'add1' with an argument list of type '(String)'
add1(4) // Cannot invoke 'add1' with an argument list of type '(Int)'
私はエラーを取得します。
'Cannot invoke add with an argument of list type '(Whatever type I used to call the function)''
コードを少し整理しました。プレイグラウンドではうまくコンパイルされますが、あなたが「add1」を呼び出そうとすると、あなたはそれを許可しません。 –
@CodyWeaverあなたが得ることができるコンパイルに近いほどの最小限の例を投稿してください。このように、私たちはすべて、「SomeProtocol」、「Thing」などの独自の実装を思いつくことなく、一貫してテストしています。 – Alexander
何が起こっているのかを明確にするためのコードを追加しました。 –