ios - 尽管强制解包 IBOutlet,类仍然没有初始化程序?

标签 ios swift class swift4

我有一个 swift 类,具有以下签名:

class CommentsVC: UITableViewController {

给我:

Class 'CommentsVC' has no initializers

它具有以下两个 IBOutlet 以及两个 IBActions:

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

我还有两种表格 View 方法:

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

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

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

出了什么问题以及如何修复它?

更新:

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

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

最佳答案

这个问题很容易解决。您所要做的就是添加强制展开或像这样的 optional :

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

您会遇到一些错误,这些错误很容易,只需按建议选项中的“修复”即可修复它们(基本上他们会说添加“!”等......)

关于ios - 尽管强制解包 IBOutlet,类仍然没有初始化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55073730/

相关文章:

ios - 读取 bool 值比读取字符串更快吗?

swift - 在 SpriteKit 中应用脉冲

swift - 如何让函数在某些情况下返回 1 个值并返回 2 或 3 个值,反之亦然?

class - 嵌套类的JNI签名?

ios - 辅助功能标识符在 iOS 模拟器的辅助功能检查器中不可见

iOS Swift 3 在显示键盘时将 TableView 内容保持在正确的位置

iOS 键盘扩展访问 PHImageManager

xcode - Swift 通用类类型既是子类又符合协议(protocol)

Java反射(reflect)Class.forName失败

c++ - 使用私有(private)参数调用公共(public)函数