如何使用函数更新文本标签?

时间:2016-07-29 11:57:13

标签: ios iphone swift xcode label

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

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

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

但是当我在应用程序中午餐时,屏幕显示我 this

1 个答案:

答案 0 :(得分:0)

您无法在初始化程序中为另一个属性调用实例方法,因为您需要访问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 }() 函数,然后使用[Route("~/Forums/{forum}/{topicName}", Order = 6)] 调用它:

[Route("{forum}/{topicName}", Name = "showTopic", Order = 6)]