美文网首页
swift view初始化 fatalError("

swift view初始化 fatalError("

作者: 目染江夏 | 来源:发表于2018-12-06 16:05 被阅读85次

    自定义view的时候 ,为了使用 xib 和 纯代码创建。
    注 : required init?(coder aDecoder: NSCoder) 必须加上 ,里面实现 super.init(coder: aDecoder)。
    系统默认实现是 fatalError("init(coder:) has not been implemented") ,xib初始化的时候会crash。

        override init(frame: CGRect) {
            super.init(frame: frame)
            setupUI()
        }
        
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
        
        override func awakeFromNib() {
            super.awakeFromNib()
            setupUI()
        }
        
    

    TableViewcCell初始化时可以不用 在 required init?(coder aDecoder: NSCoder)中实现 super.init(coder: aDecoder) 直接用默认的就可以

        required init?(coder aDecoder: NSCoder) {
           fatalError("init(coder:) has not been implemented")
        }
        
        override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
            super.init(style: style, reuseIdentifier: reuseIdentifier)
            createUI()
            loadLayout()
        }
        
        
        override func awakeFromNib() {
            super.awakeFromNib()
            createUI()
            loadLayout()
        }
        
    

    TableviewHeaderFooterView初始化时可以不用 在 required init?(coder aDecoder: NSCoder)中实现 super.init(coder: aDecoder) 直接用默认的就可以

        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
        
        override init(reuseIdentifier: String?) {
            super.init(reuseIdentifier: reuseIdentifier)
            createUI()
            loadLayout()
        }
        
        override func awakeFromNib() {
            super.awakeFromNib()
            createUI()
            loadLayout()
        }
    

    相关文章

      网友评论

          本文标题:swift view初始化 fatalError("

          本文链接:https://www.haomeiwen.com/subject/ldpocqtx.html