2016-07-29 6 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にアクセスする必要があるので、あなたは別のプロパティの初期化子でインスタンスメソッドを呼び出すことはできませんクラスが完全に初期化されるまで使用できません。

labellazy varを初めてアクセスするまで初期化されないようにすることで回避できます。そして、あなたはあなたの機能にアクセスするためにself.test()を呼び出すことができます。また

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

、あなたはstatic関数にtestを行い、その後、MyClass.test()でそれを呼び出すことができます。「\(テスト)を変更してみてください

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

let label: UILabel = { 
    let label = UILabel() 
    label.text = MyClass.test() 
    label.translatesAutoresizingMaskIntoConstraints = false 
    return label 
}() 
関連する問題