更清洁的方式来访问Swift中的superview?

时间:2017-04-19 05:09:58

标签: swift uikit

UIView的superview属性是可选的:UIView?。在我的课堂上,我知道在初始化视图后,子视图将始终具有设置​​的超级视图。有没有比childview.superview!更清洁的东西?

以下是一些示例上下文:

bgView.constrain_edges(to: bgView.superview!)

1 个答案:

答案 0 :(得分:1)

确保更清洁的方法是:

if let superview = self.superview {
    bgView.constrain_edges(to: superview)
}

有条件地展开选项是访问任何可选值的更简洁方法,包括视图superView。通常在代码中使用! bang运算符来访问选项会使您的代码感到悲伤。安全地展开选项或使用默认值(如下)使您的代码感到高兴。

bgView.constrain_edges(to: self.superView ?? self.view)