尝试在闭包内使用常量属性时,Xcode中发生错误

时间:2019-12-26 21:15:55

标签: ios swift closures

有人能这么善良地解释为什么当我尝试在闭包内部使用常量属性时,为什么在Xcode中出现弯曲的错误吗?

我需要在多个constant中使用UITextFields属性,因此我将PLACE_HOLDER设置为该常数,但是当我尝试在闭包内部使用它时,我得到以下混乱的错误

  

类型'((UserInputViewController)->()-> UserInputViewController'的值没有成员'PLACE_HOLDER'

class UserInputViewController: UIViewController{
  // constant   
  let PLACE_HOLDER = "Some Text"

  // computed property for textField
  let textFieldOne: UITextField = {

    let textField1 = UITextField()
    textField1.placeholder = PLACE_HOLDER // error here
    // some other styles

    return textField1
  }()

  override func viewDidLoad(){}
}

知道为什么吗?

1 个答案:

答案 0 :(得分:0)

如果要在初始化ViewController之前在闭包内访问ViewController的任何属性,则需要将该变量声明为lazy

lazy var textFieldOne: UITextField = { 
    let textField1 = UITextField()
    textField1.placeholder = self.PLACE_HOLDER  
    return textField1
}()