不知道如何指定我的问题。所以这里有一个例子:在ViewController中使用泛型的可选对象
final class MyClass<T: MyProtocol>: NSObject {
init(something: Something<[T]>) { ... }
}
这个对象(MyClass
)将里面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?
}
但我必须指定MyClass
泛型类型,但在初始化我不知道。 所以我的问题是有可能有一个可选的对象与将在生命周期中稍后指定的泛型?
编辑。我认为不可能实现我想要的,而不需要在init中指定泛型类型。
不知道我是否理解。这会为你工作:'var myObject:MyProtocol?'? – shallowThought
不,这不起作用,Xcode抱怨MyClass没有指定它的泛型类型。如果我知道我的泛型类型,我可以写'var myObject:MyClass?'SomeGenericType'实现'MyProtocol'。 我的问题是,我不知道在VC初始化的泛型类型,我知道它只是通过segue传递后。 –
Xernox
我认为你实际上并不需要泛型,但也许我弄错了。 – shallowThought