初始化Swift成员变量的合适位置

时间:2014-07-11 09:09:05

标签: ios swift

以我的代码为例:

class MyView: UIView {

    var labelText : UILabel

    init() {

        // ****** Place 1 ******

        // the width of my view is fixed
        super.init(frame: CGRectMake(0, 0, CGFloat(200), 0))

        // ****** Place 2 ******

我通常可以在放置1 放置2 中初始化标签。但两者都不完美。如果我在放置1 时初始化标签,则视图本身未初始化。如果我在放置2 处启动标签,我收到以下错误消息,以便我需要将标签声明为可选。

  

Property' self.labelText'没有在super.init调用

初始化

可选变量的问题是我必须使用labelText!无处不在,使代码有点混乱。

有什么好主意吗?感谢

1 个答案:

答案 0 :(得分:2)

您应该将变量初始化为1'并在' place two'中进行操作,例如

class MyView: UIView {

    let labelText : UILabel

    init() {

        labelText = new UILabel()

        // the width of my view is fixed
        super.init(frame: CGRectMake(0, 0, CGFloat(200), 0))

        addSubView(labelText)
   }

}

此外,在大多数情况下,我希望此标签是常量,因此使用上面的let