我正在考虑下面代码片段的内容,这显然不起作用但传达了我的意图。这个给出了在其自己的初始值中使用的错误消息变量。
private let formatter = NumberFormatter() {
formatter.maximumFractionDigits = 6
}
答案 0 :(得分:0)
我认为这是初始化程序的工作,做这样的事情是标准的:
class NumberFormatter {
var maximumFractionDigits: Int = 0
init(maximumFractionDigits: Int) {
self.maximumFractionDigits = maximumFractionDigits
}
}
let formatter = NumberFormatter(maximumFractionDigits: 6)
答案 1 :(得分:0)
不,你不能在自己的初始化中改变一个属性。 你可以做的是使属性的初始值为 “立即评估关闭”:
private let formatter: NumberFormatter = {
let fmt = NumberFormatter()
fmt.maximumFractionDigits = 6
// ...
return fmt
}()
这会创建一个NumberFormatter
,设置所需的属性,
并将结果分配给formatter
属性。