Ios 不带参数的自定义init

Ios 不带参数的自定义init,ios,swift,init,Ios,Swift,Init,我有带可选参数的init init(cellClass: UICollectionViewCell.Type? = nil, contentHeight: Int? = nil) { self.init() self.setupCollectionView() if cellClass != nil && contentHeight != nil { self.hasContentCollectionView = true

我有带可选参数的init

init(cellClass: UICollectionViewCell.Type? = nil, contentHeight: Int? = nil) {
    self.init()

    self.setupCollectionView()

    if cellClass != nil && contentHeight != nil {
        self.hasContentCollectionView = true
        self.contentHeight = contentHeight!
        self.contentCollectionViewCellClass = cellClass!
        self.setupContentCollectionView()
    }

    self.setupConstraints()
}
问题是,当我在没有参数的情况下执行
init()
时,上面的init没有被调用。但是我需要它来设置视图

我知道通过添加非可选参数可以解决问题,这将有助于执行init,但我不喜欢这个解决方案,因为我没有每次都可以使用的有意义的参数

如何在没有参数的情况下调用上面的init?

请显示更多代码(类和其他初始值设定项,如果有)。因为如果我们假设它是
UICollectionViewCell
子类swift init()缺少的唯一初始值设定项
procility
,则在实例化对象时会调用这些特殊方法。您已经创建了参数化init()。参数化init()示例。。。原因是:当我们不在类中声明任何init()时,编译器会为该类创建默认的init(),但是如果我们声明init(),而不管它是默认的还是参数化的,编译器不会声明默认的init()本身。