刚刚将一个项目转换为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))!
}

因为如果你 Select NSNumber,你会得到预定义的初始化,比如:

public init(value: Int)

Swift相关问答推荐

为表单部分赋予背景 colored颜色 /渐变

在Swift中initt()完成后运行一个函数

@ MainActor + Combine不一致的编译器错误

我可以在预览中通过拖动手势跳转,但在模拟器中失败

MacOS 13-如何使用SwiftUI创建Message.App设置工具栏?

Swift中从头开始的基本HTTP客户端

对实例方法appendInterpolation的调用没有完全匹配

将变量设置为 @Published 会 destruct 代码而不会出现任何错误

相互取消任务

当模式以编程方式关闭时在父视图控制器中触发操作

可以使 Swift init 仅可用于 Objective C 吗?

如何在 macOS/AppKit 的窗口选项卡上接受拖动项目的放置?

如何将回调传递给 View init

Swift中的分段错误

FCM 后台通知在 iOS 中不起作用

如何在 Swift 中复制字典?

无法推断泛型参数的参数

使用 ARAnchor 插入 node 和直接插入 node 有什么区别?

应用程序包不包含有效标识符

Swift - 要求实现协议的类是某个类的子类