This question already has answers here:
How to initialize properties that depend on each other
(4个答案)
上个月关闭。
有人可以这么善良地解释为什么当我尝试在闭包内部使用常量属性时,为什么在Xcode中出现弯曲的错误吗?
我需要在多个
类型'((UserInputViewController)->()-> UserInputViewController'的值没有成员'PLACE_HOLDER'
知道为什么吗?
(4个答案)
上个月关闭。
有人可以这么善良地解释为什么当我尝试在闭包内部使用常量属性时,为什么在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(){}
}
知道为什么吗?
最佳答案
如果要在ViewController初始化之前在闭包内访问ViewController的任何属性,则需要将该变量声明为lazy
:
lazy var textFieldOne: UITextField = {
let textField1 = UITextField()
textField1.placeholder = self.PLACE_HOLDER
return textField1
}()
09-13 13:56