首先,我有一个协议:
public protocol ContentList {
//...
}
和一些struct
s:
public struct Post: ContentList {
//...
}
public struct Essay: ContentList {
//...
}
然后我有UITableViewController
的子类:
open class MainTableViewController<T: ContentList>: UITableViewController {
// ...
func getData() -> [T] {
retrun ...
}
}
此类的用户界面部分MainTableViewController
已在Main.storyboard
中定义,因此我执行了此操作:
let kMainTableViewControllerIdentifier = "MainTableViewController"
let listController = (self.storyboard.instantiateViewController(withIdentifier: kMainTableViewControllerIdentifier) as? MainTableViewController<Post>)!
listController.dataSourceType = .post
我收到了一些错误:
Unknown class _TtC5Elias23MainTableViewController in Interface Builder file.
Could not cast value of type 'UITableViewController' (0x1af463db8) to 'Elias.MainTableViewController<Elias.Post>' (0x101907af8).
Could not cast value of type 'UITableViewController' (0x1af463db8) to 'Elias.MainTableViewController<Elias.Post>' (0x101907af8).
到目前为止,我对如何解决这个问题一无所知。所以我需要一些帮助。