Class 尽管强制展开 IBOutlets,但没有初始化程序?

Class has no initializers despite force unwraping IBOutlets?

我在 swift 中有一个 class,签名如下:

class CommentsVC: UITableViewController {

给我:

Class 'CommentsVC' has no initializers

它有两个波纹管 IBOutlets 以及两个 IBActions:

@IBOutlet weak var AddCommentView: UIView!
@IBOutlet weak var AddingCommentTextField: UITextField!

我还有两个table查看方式:

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

我看过 但是它不适用于这种情况,因为我已经按照他们的建议去做了。

出了什么问题,我该如何解决?

更新:

下面的代码似乎是问题所在。在使用准备方法传递此数据的另一个 VC 上,我传入了一个 post 对象,该对象的初始化方式与我初始化下面有问题的代码的方式相同。我该如何解决这个问题?

var selectedMedia : Media {
    didSet {
        self.comments = selectedMedia.comments
        loadComments()
    }
}

只需为 var selectedMedia 添加一个初始值,如下所示:

var selectedMedia: Media = Media() {
    didSet {
        self.comments = selectedMedia.comments
        loadComments()
    }
}

或者您可以将 selectedMedia 设为可选:媒体!还是媒体?

这个问题很容易解决。您所要做的就是添加一个强制解包或一个可选的,如下所示:

var selectedMedia : Media! /*or, ?*/ {
    didSet {
        self.comments = selectedMedia.comments
        loadComments()
    }
}

您会遇到一些错误,只需按建议选项中的修复即可轻松解决这些错误(基本上他们会说添加“!”等。)