Ios 不带参数的自定义init
我有带可选参数的initIos 不带参数的自定义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(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()本身。