2017-07-18 15 views
0

私はプロパティーConferenceNumberDirectory.attを呼び出せるようにしたいと思っています。番号のディレクトリ/配列が存在する場合、それを返します。静的プロパティをnilに設定する方法は?

///Builds, stores, retrieves and queries conference number directories. 
class ConferenceNumberDirectory { 

static var att: [ConferenceNumber] = { 
    build(from: ConferenceNumberDirectory.jsonArray) 
    print("Am I lazy!?") 
    return ConferenceNumberDirectory.att 
}() 
build

ConferenceNumberDirectory.attを修正する機能です。私がそれを呼び出そうとすると、エミュレータが詰まっているように見え、実行を止めるまでメモリ使用量は着実に上昇します。 計算されたプロパティを使用してこれを行う方法はありますか?

+0

再帰が何であるか知っていますか? – rmaddy

+0

@rmaddyああ笑私は何をしたのか分かります。 – Deco

+0

@rmaddy計算された関数をもう一度呼び出すことなく、プロパティの既存の値にアクセスする方法はありますか? 値をチェックするために別々の 'private''ttt2'プロパティを作成することができますが、それは汚れていると感じます。 – Deco

答えて

4

遅延計算されたプロパティを作成しています。単純に実行します。

class ConferenceNumberDirectory { 

static var att: [ConferenceNumber] = { 
    let result = build(from: ConferenceNumberDirectory.jsonArray) 
    print("Am I lazy!?") 
    return result 
}() 

そして、あなたのbuild方法ではなく、attを設定しようとするの値を返す変更。

+0

私たちはどのようにこのような何かをテストするでしょうか? – Deco

関連する問題