私はこれをやろうとしているが、私はいくつかのトラブルスウィフトジェネリック延期問題
これは
protocol CustomProtocol {
}
SubCustomProtocol
protocol SubCustomProtocol: CustomProtocol {
}
SubCustomProtocolImplementation
class SubCustomProtocolImplementation: SubCustomProtocol {
}
CustomProtocol
ですが取得しています
これはCustomClass
class CustomClass<P: CustomProtocol> {
var customProtocol: P?
func doSomething() {
}
}
SubCustomClass
class SubCustomClass<P: SubCustomProtocol>: CustomSubClass {
}
そして、私のBaseViewController
class BaseViewController<P: CustomProtocol, T: CustomClass<P>>: UIViewController {
var foo: T!
override func viewDidLoad() {
super.viewDidLoad()
foo?.doSomething()
}
}
私のViewController私がfooを呼び出すラインで
class ViewController<P: SubCustomProtocolImplementation, T: SubCustomClass<P>>: BaseViewController<P,T> {
override func viewDidLoad() {
super.viewDidLoad()
}
}
ある?.doSomething()それを言う「T」が「> 『』 CustomClass < P」のサブタイプではないことと、私は私が間違って
をやっているかわからないとのViewController宣言ではBaseViewController TがCustomClassから継承 が必要です」と述べています< 'P'>「
お手伝いできますか?
このエラーは発生しません。少なくとも遊び場で。あなたは完全な文脈を提供していますか? – iyuna
@イユーナ私は何かを残していた申し訳ありません!私は質問 –
を編集しました。型パラメータはジェネリッククラスによって制約を受けることはできません。クラスまたはプロトコルによって制約される可能性があります。 – CouchDeveloper