尝试在闭包中使用常量属性时 Xcode 中出错



有人可以这么好心地解释为什么当我尝试在闭包中使用常量属性时,Xcode 中会出现波浪线错误?

我需要在多个UITextFields中使用constant属性,所以我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(){}
}

知道为什么吗?

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

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

相关内容

最新更新