MainTableViewController

MainTableViewController

首先,我有一个协议:

public protocol ContentList {
//...
}

还有一些structs:
public struct Post: ContentList {
//...
}
public struct Essay: ContentList {
//...
}

那么我有一个UITableViewController的子类:
open class MainTableViewController<T: ContentList>: UITableViewController {
    // ...
    func getData() -> [T] {
        retrun ...
    }
}

这个类的UI部分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).

到目前为止,我还不知道如何解决这个问题。所以我需要帮助。

最佳答案

确保你的视图控制器也被定义为故事板中的MainTableViewController!
ios - Swift 3通用类型用法-LMLPHP

09-04 07:09