1. ホーム
  2. swift

[解決済み] swift 3 エラー。引数ラベル '(_:)' は利用可能なオーバーロードに一致しません。

2022-02-16 20:05:51

質問

あるプロジェクトをSwift 3に変換したところ、次のエラーが発生しました。

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

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

を実行すると、戻り行にエラー "引数ラベル '(_:)' が利用可能なオーバーロードに一致しません" が表示されます。

この問題を解決するには、何を変更する必要があるか見当がつきますか?

解決方法は?

この方法でできます。

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

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

なぜなら、もしあなたが NSNumber のような定義済みinitが表示されます。

public init(value: Int)