我想获得一个类型分配的 myClass
值,然后从故事板上实例化。
func detailViewControllerClasses(index: Int) -> UIViewController {
let myClass = [CollectionViewController().self, CollectionViewController().self, CollectionViewController().self, CollectionViewController().self][index]
let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let vc = storyboard.instantiateViewController(withIdentifier: "CollectionViewController") as? myClass else {
fatalError("Unable to instatiate a ViewController from the storyboard.")
}
}
在guard let
行上,编译器说"未宣布的可变myclass"。我宣布了几条没有任何错误或警告。为什么会发生此错误?
访问.self
之前,您会实例化CollectionViewControllers
。因此,您不是在创建类数量,而是创建一系列实例。删除()
func detailViewControllerClasses(index: Int) -> UIViewController {
let myClass = [CollectionViewController.self, CollectionViewController.self, CollectionViewController.self, CollectionViewController.self][index]
let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let vc = storyboard.instantiateViewController(withIdentifier: "CollectionViewController") as? myClass else {
fatalError("Unable to instatiate a ViewController from the storyboard.")
}
}