美文网首页
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