首页 > 解决方案 > 将双精度词分配为标签中的文本时如何删除单词 optional?

问题描述

我从 JSON 中获取了一系列值,其中一个由totalBuythis 值定义为 bool

struct PurchaseTotals: Codable {

    var totalBuy: Double?

    enum CodingKeys: String, CodingKey {

        case sumTotal = "totalBuy"
    }
}

当我尝试将此双精度指定为标签的文本时,可选一词会显示在前面:

我正在分配这样的值:

    sumLabel.text = "\(totalBuy)"

可选这个词怎么去掉?

除此之外,是否可以在必要时将标签中的值格式化为包含逗号,的值totalBuy是一个数字,有时看起来像"1000"在一个(1,000).?之后需要逗号的地方。

标签: jsonswift

解决方案


我认为你正在寻找NumberFormatter

// If I have a value for totalBuy go ahead
if let totalBuy = totalBuy {
    let formatter = NumberFormatter()
    formatter.numberStyle = .decimal
    let formattedString = formatter.string(from: NSNumber(value: totalBuy)) ?? ""
    sumLabel.text = "\(formattedString)"
} else {
    sumLabel.text = ""
}

推荐阅读