2017-03-26 99 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)