質問の指定方法がわかりません。このオブジェクト(MyClass
)はViewController
ViewControllerにジェネリックを持つオプションオブジェクト
final class MyViewController: UIViewController {
//Should be optional, because I will assing myObject in prepareForSegue
//And I will initialize MyClass with different Objects,
//that implement MyProtocol
var myObject: MyClass?
}
の内側になります
final class MyClass<T: MyProtocol>: NSObject {
init(something: Something<[T]>) { ... }
}
しかし、私はMyClass
ジェネリック型を指定しなければなりませんが、私は初期化時に知ることができません。だから、ここでの例です。 私の質問はライフサイクルの後半で指定されるジェネリックのオプショナルオブジェクトを持つことが可能なのでしょうか?
EDIT。 initで汎用タイプを指定せずに、私が望むものを達成することは不可能だと思います。
わかりましたかわかりません。これはあなたのために働くでしょう: 'var myObject:MyProtocol?'? – shallowThought
いいえ、これは動作しません.Xcodeは、MyClassがジェネリック型を指定していないと訴えています。私がジェネリック型を知っていれば 'var myObject:MyClass?'と書くことができます。ここで 'SomeGenericType'は' MyProtocol'を実装しています。 私の問題は、私はVC initでジェネリック型を知らないということです。私はそれがsegue経由で渡された後にしかわかりません。 –
Xernox
私はあなたが実際にジェネリックタイプを必要としないと思うが、多分それは間違っているかもしれない。 – shallowThought