无法分配“ CLong”类型的值? aka'Optional <Int>'键入'String?' [迅速5]

问题描述

问题:如何在表格视图中使用DateFormatter(Type:CLong)?

我寻找的类似问题

How to change JSON string to date format in tableview

我在stackoverflow上查找了类似的问题。但是,无法使用Type:CLong。

long是我不熟悉的一种类型,所以我不知道要使用哪种类型。

连接json文件

<div class="container">
<dl class="dropdown">
            <dt>
                <label style="font-weight:500;">SuperClass</label>

                <a href="#">
                    <input class="hida form-control-sm" style="height:32px; font-weight:400; border:1px solid #d1d3e2;" value="SuperClass Filter" />
                </a>
            </dt>
            <dd>
                <div class="mutiSelect">
                    <ul style="height:auto;">
                        @Html.Action("_ClasspartialView")
                    </ul>
                </div>
            </dd>       
        </dl>
        <dl class="dropdown2">
            <dt>
                <label style="font-weight:500;">Status:</label>
                <a href="#">

                    <input class="hida form-control-sm" style="height:32px; font-weight:400; border:1px solid #d1d3e2;" value="Status Filter" />
                </a>
            </dt>
            <dd>
                <div class="mutiSelectStatus">
                    <ul style="height:auto;">
                        <li><input type="checkBox" value="one" onchange="filter()" name="ab" />one</li>
                        <li><input type="checkBox" value="two" onchange="filter()" name="ab" />two</li>
                    </ul>
                </div>
            </dd>
        </dl>
        </div>

TableViewController

struct BoardList: Codable {
    var b_date: CLong?
}

++我必须采用CLong类型。因为服务器值是以这种格式指定的。

分配给邮递员的值

value assigned to Postman

解决方法

服务器发送JSON。 JSON中没有类型CLong,它是Int

只要将b_date声明为Date,就可以在没有任何日期格式化程序的情况下解码日期。默认的日期解码策略为secondsSince1970,该整数表示。

let jsonString = """
{"b_date" : 1602813427}
"""

struct BoardList: Codable {
    let b_date: Date
}

let data = Data(jsonString.utf8)

do {
    let result = try JSONDecoder().decode(BoardList.self,from: data)
    print(result)
} catch {
    print(error)
}
 

您还可以指定convertFromSnakeCase策略并声明结构成员bDate,以摆脱丑陋的蛇案名称。