swift - 不正确的 Swift 2 初始化类方法语法

标签 swift class syntax init

我在尝试为 iOS Swift 应用程序创建自定义类时遇到错误:

Super.init called before returning from initializer

Will never be executed

这是我的代码:

class CardTableViewCell: UITableViewCell {

    //Vars
    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var subtitleLabel: UILabel!
    @IBOutlet weak var thumbImage: UIImageView!
    @IBOutlet weak var detailsLabel: UILabel!
    @IBOutlet weak var costLabel: UILabel!

    init(name: String){
        self.nameLabel.text = name
    } //<-- Error here

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
        super.init(coder:aDecoder) //<--- Error Here
    }

}

我在这里做错了什么?我以前从未需要将 init Coder 方法添加到自定义类中。

我已经部分修复了代码,请参见下文。

更新的代码: CardTableViewCell 类:UITableViewCell {

    //Vars
    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var subtitleLabel: UILabel!
    @IBOutlet weak var thumbImage: UIImageView!
    @IBOutlet weak var detailsLabel: UILabel!
    @IBOutlet weak var costLabel: UILabel!

    init(name: String, subtitle: String) {
        super.init(style: UITableViewCellStyle.Default, reuseIdentifier: name)
        self.nameLabel.text = name
        self.subtitleLabel.text = subtitle
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

var lers = CardTableViewCell(name: "Happy", subtitle: "Gilmore") //<-- ERROR HERE
print(lers.subtitleLabel.text)

返回错误:

Execution was interupted, reason EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

我不明白初始化代码的方式、内容或原因。如果有人可以向我指出一些有关 Swift 2 的正确文档,请告诉我。所有苹果的开发文档都很糟糕。

最佳答案

更改为:

init(name: String) {
    super.init(style: UITableViewCellStyle.Default, reuseIdentifier: name)
    self.nameLabel.text = name
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

关于swift - 不正确的 Swift 2 初始化类方法语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33285015/

相关文章:

mysql - SQL 请求 CREATE TEMPORARY TABLES(在终端中工作,但不通过 php)

syntax - Kotlin 二级构造函数

ios - 丰富的本地通知

javascript - 类函数中 php 的轻松迭代

java - 从外部类修改基类中的内容并从派生类访问它

java - 静态变量看不到

mysql - Codeigniter 左外连接

ios - 使用泛型设置 cellDelegate

ios - The Swift Programming Language Book Chapter Section on Control Flow 实验 3

ios - iOS Swift 中的 Android 服务等价物