2016-07-29 72 views
0

如何使用函数更新label.text? 这是我的代码:如何使用函数更新文本标签?

func test() -> String!{ 
    return "2" 
} 

let label: UILabel = { 
    let label = UILabel() 
    label.text = "\(test)" 
    label.translatesAutoresizingMaskIntoConstraints = false 
    return label 
}() 

但是,当我吃午饭的应用程序,屏幕上显示我 this

+1

尝试改变“\(测试) “to”\(test())“ – Woodgun11

+1

试试这个 label.text = test() –

+0

它给了我:在类型'MyClass'上使用实例成员'test' –

回答

0

,因为你需要访问self不能调用初始化实例方法的另一个属性直到课程完全初始化之后才可用。

您可以通过使您的label a lazy var避免这种情况,直到第一次访问它才会被初始化。然后,你可以调用self.test()来访问你的函数:

lazy var label: UILabel = { 
    let label = UILabel() 
    label.text = self.test() 
    label.translatesAutoresizingMaskIntoConstraints = false 
    return label 
}() 

或者,你可以做teststatic功能,然后用MyClass.test()称之为:

static func test() -> String { 
    return "2" 
} 

let label: UILabel = { 
    let label = UILabel() 
    label.text = MyClass.test() 
    label.translatesAutoresizingMaskIntoConstraints = false 
    return label 
}()