安装使用NumberFormatter

时间:2019-01-16 09:49:32

标签: swift cocoapods ios-frameworks

我正在使用DoubleNSNumber的扩展名来生成表示价格的字符串。

extension NSNumber {

    internal func getPriceString(currencyCode: String? = nil, numberOfFractionDigits: Int = 2) -> String? {
        let numberFormatter = NumberFormatter()
        numberFormatter.numberStyle = .currency
        numberFormatter.locale = Locale.current
        numberFormatter.currencyCode = currencyCode ?? Locale.current.currencyCode ?? "USD"
        numberFormatter.minimumFractionDigits = numberOfFractionDigits
        numberFormatter.maximumFractionDigits = numberOfFractionDigits
        return numberFormatter.string(from: self)
    }

}

extension Double {

    public func getPriceString(currencyCode: String? = nil, numberOfFractionDigits: Int = 2) -> String? {
        return NSNumber(value: self).getPriceString(currencyCode: currencyCode, numberOfFractionDigits: numberOfFractionDigits)
    }

}

将此代码添加到主项目后,效果很好。我可以对服务器返回的数字调用Double方法,以获取有效的价格字符串。例如:

priceLabel.text = item.price.getPriceString(currencyCode: "EUR", numberOfFractionDigits: 0)
// €1,024

但是,我的目标是将这些扩展名移至可以在多个项目中使用的Pod。当从主项目中调用添加到pod中的相同代码时,出现运行时错误。

为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:1)

在安装/更新Pod之后,必须清理项目文件夹。

Shift⇧ + 命令⌘ + K

选项⌥ + Shift⇧ + 命令⌘ + K