【问题标题】:`Ambiguous reference to member` when creating convenience init in extension在扩展中创建便利初始化时`对成员的模棱两可的引用`
【发布时间】:2015-09-11 19:43:39
【问题描述】:

这是我的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() 放在便利初始化程序的末尾时。

【问题讨论】:

    标签: ios swift swift2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多