2017-03-26 10 views
0

私は以下のコードスニペットの行で、明らかに機能しないが、私の意図を伝えるものを考えていた。これは、エラーメッセージを、それ自身の初期値内で使用する変数に与えます。初期化時にプロパティ/変数を直接変更することはできますか?

private let formatter = NumberFormatter() { 
    formatter.maximumFractionDigits = 6 
} 
+0

私はSwiftには全く新しく、Stack Overflowに関する質問に新しいことがあります。私が間違った名前や言葉を使用した場合は、私を許してください。 – saidaspen

答えて

0

いいえ、あなたは、独自の初期化中にプロパティを変異させることはできません。 何ができることは 「すぐに評価閉鎖」プロパティの初期値を作ることです。

private let formatter: NumberFormatter = { 
    let fmt = NumberFormatter() 
    fmt.maximumFractionDigits = 6 
    // ... 
    return fmt 
}() 

これはNumberFormatterを生成し、所望の特性、 を設定し、formatterプロパティに結果を割り当てます。

+0

ありがとう、それは素晴らしいです!まさに私がやりたいことですか? – saidaspen

0

私はこのような何かをすることは標準で、それは初期の仕事だと思う:

class NumberFormatter { 
    var maximumFractionDigits: Int = 0 

    init(maximumFractionDigits: Int) { 
     self.maximumFractionDigits = maximumFractionDigits 
    } 
} 

let formatter = NumberFormatter(maximumFractionDigits: 6) 
関連する問題