Search code examples
swiftswift3

swift 3 error : Argument labels '(_:)' do not match any available overloads


Just converted a project to Swift 3 and cant figure out the following error.

public func currencyString(_ decimals: Int) -> String {

    let formatter = NumberFormatter()
    formatter.numberStyle = .currency
    formatter.maximumFractionDigits = decimals
    return formatter.string(from: NSNumber(self))!
}

the return line is showing an error "Argument labels '(_:)' do not match any available overloads"

Any idea what needs to change to resolve this


Solution

  • You can do it this way:

    public func currencyString(_ decimals: Int) -> String {
    
        let formatter = NumberFormatter()
        formatter.numberStyle = .currency
        formatter.maximumFractionDigits = decimals
        return formatter.string(from: NSNumber(value: decimals))!
    }
    

    Because if you check NSNumber you will get predefined init like:

    public init(value: Int)