【问题标题】:Swift required init NSCoder constructorSwift 需要 init NSCoder 构造函数
【发布时间】:2014-11-21 06:29:53
【问题描述】:

我有以下类代表我的 iOS 8 自定义键盘中的一个按钮:

internal class KeyButton: UIButton {

    required init(char: Character) {
        super.init()
    }


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

由于 KeyButton 不是通过 storyboard 初始化的,因此构造函数 (coder: NSCoder) 永远不会被调用。

问题是我需要实现(coder: NSCoder) 构造函数,当我运行应用程序时,我在实例化KeyButton 时收到异常plugin interrupted

为什么我需要实现 (coder: NSCoder) 构造函数,尽管我以编程方式实例化所有内容

【问题讨论】:

    标签: ios swift ios8 nscoder


    【解决方案1】:

    它与编码器无关。 UIButtoninit() 调用init(frame: CGRect),你还没有实现。添加以下内容,您应该一切顺利...

    override init(frame: CGRect ) {
        super.init(frame: frame)
        println("Button frame allocated")
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-07
      • 2019-06-16
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      相关资源
      最近更新 更多