我正在使用Double
和NSNumber
的扩展名来生成表示价格的字符串。
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中的相同代码时,出现运行时错误。
为什么会这样,我该如何解决?
答案 0 :(得分:1)
在安装/更新Pod之后,必须清理项目文件夹。
Shift⇧ + 命令⌘ + K
选项⌥ + Shift⇧ + 命令⌘ + K