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

时间:2015-09-11 19:43:39

标签: 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
    }
}

是什么原因?

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

1 个答案:

答案 0 :(得分:10)

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