`在扩展中创建便利init时对成员`的模糊引用

Bar*_*zyk 9 ios swift swift2

这是我的init:

extension NSNumberFormatter {

    convenience init(digits: Int = 0) {
        self.init() //ambiguous reference to member 'NSNumberFormatter.init'

        groupingSeparator = " "
        decimalSeparator = "."
        numberStyle = .DecimalStyle
        roundingMode = .RoundHalfDown

        maximumFractionDigits = digits
        minimumFractionDigits = digits
    }
}
Run Code Online (Sandbox Code Playgroud)

是什么原因?

同样的问题是当我放在self.init()我的便利初始化器的末尾时.

vac*_*ama 10

原因是你创建了一个init可以在没有任何参数digits的情况下调用的新函数,因为它具有默认值0.现在,init()可以参考默认的初始化程序或新的初始化程序.如果删除默认值digits,则会编译.