如何使用函数更新 label.text? 这是我的代码:
func test() -> String!{
return "2"
}
let label: UILabel = {
let label = UILabel()
label.text = "\(test)"
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
但是当我在应用程序中使用午餐时,屏幕显示了我 this
最佳答案
您无法在另一个属性的初始化程序中调用实例方法,因为您需要访问 self
,并且在类完全初始化之前该访问不可用。
您可以通过将您的label
设置为lazy var
来解决这个问题,直到第一次访问它时才会对其进行初始化。然后你可以调用 self.test() 来访问你的函数:
lazy var label: UILabel = {
let label = UILabel()
label.text = self.test()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
<小时/>
或者,您可以将 test
设为 static
函数,然后使用 MyClass.test()
调用它:
static func test() -> String {
return "2"
}
let label: UILabel = {
let label = UILabel()
label.text = MyClass.test()
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
关于ios - 如何使用函数更新文本标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658250/