2015-09-11 10 views
9

Das ist mein init:`mehrdeutiger Verweis auf member` wenn init in Verlängerung Komfort zu schaffen

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 
    } 
} 

Was ist der Grund?

Das gleiche Problem ist, wenn ich self.init() am Ende meiner Bequemlichkeit Initialisierer setze.

Antwort

10

Der Grund ist, dass Sie eine neue init erstellt haben, die ohne Parameter aufgerufen werden kann, da digits10 einen Standardwert von 0 hat. Jetzt kann init() auf den Standardinitialisierer oder Ihren neuen verweisen. Wenn Sie den Standardwert für digits entfernen, wird es dann kompilieren.

+0

Richtig, wirklich schlau :) danke –

Verwandte Themen